# syntax=docker/dockerfile:1 FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ COPY --from=npm-cache / /tmp/npm-cache RUN npm install --cache /tmp/npm-cache --prefer-offline --no-audit COPY tsconfig.json ./ COPY src ./src RUN npm run build FROM node:20-alpine WORKDIR /app COPY package*.json ./ COPY --from=npm-cache / /tmp/npm-cache RUN npm install --omit=dev --cache /tmp/npm-cache --prefer-offline --no-audit COPY --from=builder /app/dist ./dist EXPOSE 3020 ENV DATA_DIR=/app/data VOLUME /app/data CMD ["node", "dist/index.js"]