mymusics

retro MySpace-style music player
Log | Files | Refs | README

Dockerfile (797B)


      1 FROM node:22-bookworm-slim AS build
      2 
      3 RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*
      4 
      5 WORKDIR /app
      6 COPY package.json package-lock.json ./
      7 RUN npm ci
      8 
      9 COPY . .
     10 # Mount or COPY data/metadata.tsv before build in production
     11 RUN npm run index-metadata -- --if-stale || true
     12 RUN npm run build
     13 
     14 FROM node:22-bookworm-slim AS runtime
     15 
     16 WORKDIR /app
     17 ENV NODE_ENV=production
     18 ENV SERVE_STATIC=true
     19 ENV PORT_INDEX=0
     20 
     21 COPY package.json package-lock.json ./
     22 RUN npm ci --omit=dev && npm cache clean --force
     23 
     24 COPY --from=build /app/dist ./dist
     25 COPY --from=build /app/dist-server ./dist-server
     26 COPY --from=build /app/data ./data
     27 COPY --from=build /app/public ./public
     28 COPY --from=build /app/ecosystem.config.cjs ./
     29 
     30 EXPOSE 38471
     31 CMD ["node", "dist-server/server/index.js"]