# syntax=docker/dockerfile:1.4 FROM node:18-alpine AS base WORKDIR /app COPY package*.json ./ FROM base AS dev ENV NODE_ENV=development RUN npm ci COPY . . RUN chmod +x docker-entrypoint.sh scripts/wait-for-db.js ENTRYPOINT ["./docker-entrypoint.sh"] CMD ["npm", "run", "dev"] FROM base AS prod-deps ENV NODE_ENV=production RUN npm ci --omit=dev FROM node:18-alpine AS prod WORKDIR /app ENV NODE_ENV=production \ HOST=0.0.0.0 \ PORT=3001 COPY --from=prod-deps /app/node_modules ./node_modules COPY . . RUN chmod +x docker-entrypoint.sh scripts/wait-for-db.js EXPOSE 3001 ENTRYPOINT ["./docker-entrypoint.sh"] CMD ["node", "src/index.js"]