# syntax = docker/dockerfile:1 ARG NODE_VERSION=20-slim FROM node:${NODE_VERSION} AS base WORKDIR /src # Build FROM base AS build COPY frontend/package.json frontend/package-lock.json ./ RUN npm ci COPY frontend/ . RUN npm run build # Production FROM base AS production ENV PORT=3000 ENV NODE_ENV=production COPY --from=build /src/.output /src/.output HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ CMD curl -f http://localhost:${PORT}/ || exit 1 EXPOSE $PORT CMD [ "node", ".output/server/index.mjs" ] # Development FROM base AS development WORKDIR /app ENTRYPOINT [ "npm", "run", "dev" ]