Files

26 lines
478 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/
COPY db/ ./db/
# 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"]