25 lines
463 B
Docker
25 lines
463 B
Docker
FROM node:20-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# Install OS dependencies for audio processing
|
|
RUN apk add --no-cache ffmpeg chromaprint
|
|
|
|
# Install dependencies
|
|
COPY server/package*.json ./server/
|
|
RUN cd server && npm ci --omit=dev
|
|
|
|
# Copy app source
|
|
COPY server/ ./server/
|
|
COPY public/ ./public/
|
|
COPY shared/ ./shared/
|
|
|
|
# Set ownership and switch to non-root user
|
|
RUN chown -R node:node /app
|
|
USER node
|
|
|
|
# Start server
|
|
WORKDIR /app/server
|
|
EXPOSE 3000
|
|
CMD ["node", "index.js"]
|