lecheminvert.tech/Dockerfile
Adam Belkacemi cf6ee64e31
Some checks are pending
CI / tests (push) Waiting to run
CI / deploiement (push) Blocked by required conditions
Import initial : code en production sur Hetzner
2026-09-07 18:21:38 +00:00

24 lines
722 B
Docker

# Etape 1 : on construit l'application avec toutes les dependances.
FROM node:24-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Etape 2 : l'image finale ne garde que le resultat du build.
# Ni sources, ni node_modules de developpement : environ 150 Mo au lieu de 800.
FROM node:24-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV NITRO_PORT=3000
ENV NITRO_HOST=0.0.0.0
# On ne tourne pas en root : si l'application est compromise,
# l'attaquant n'a pas les pleins pouvoirs dans le conteneur.
RUN addgroup -S nuxt && adduser -S nuxt -G nuxt
COPY --from=builder --chown=nuxt:nuxt /app/.output ./.output
USER nuxt
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]