Import initial : code en production sur Hetzner
This commit is contained in:
commit
cf6ee64e31
43 changed files with 14404 additions and 0 deletions
24
Dockerfile
Normal file
24
Dockerfile
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# 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"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue