# Build the application with a specific environment
FROM node:20 AS builder

WORKDIR /usr/src/app

COPY . .

RUN npm ci
RUN npm run build

# Create the executor image
FROM node:20

WORKDIR /app

COPY --from=builder --chown=node:node /usr/src/app/build ./build
COPY --from=builder --chown=node:node /usr/src/app/migrations ./migrations
COPY --from=builder --chown=node:node /usr/src/app/package* .
RUN npm ci --omit=dev

USER node

VOLUME [ "/app/private" ]
VOLUME [ "/app/uploads" ]

CMD [ "node", "/app/build" ]