2413af1abc6efc9954e73e8d3acfc14be7720858
FROM node:24-alpine3.23 AS deps
RUN apk add --no-cache build-base yaml-dev
ARG UID=1000
ARG GID=1000
USER ${UID}:${GID}
WORKDIR /app
COPY --chown=${UID}:${GID} package*.json ./
RUN npm ci --frozen-lockfile --omit=dev
COPY --chown=${UID}:${GID} prisma ./prisma/
RUN npx prisma generate
# For runtime then:
FROM node:24-alpine3.23
RUN apk add --no-cache bash postgresql17-client valkey-cli
COPY --from=deps --chown=${UID}:${GID} /app/node_modules ./node_modules
COPY --from=deps --chown=${UID}:${GID} /app/node_modules/.prisma ./node_modules/.prisma
COPY --chown=${UID}:${GID} . .
EXPOSE 3000
# migrate then start — migrations are idempotent
CMD ["sh", "-c", "npx prisma migrate deploy && npm run start"]