# syntax = docker/dockerfile:1 ARG NODE_VERSION=23.11.0-slim FROM node:${NODE_VERSION} AS base ARG PORT=3000 WORKDIR /src # Build FROM base AS build COPY package.json pnpm-lock.yaml ./ RUN npm install RUN npm rebuild sharp COPY . . RUN npm run build # Production FROM base AS production ENV PORT=${PORT} 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}/api/health || exit 1 EXPOSE $PORT CMD [ "node", ".output/server/index.mjs" ] # Development FROM base AS development WORKDIR /app ENTRYPOINT [ "npm", "run", "dev" ]