Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ node_modules
npm-debug.log
.nuxt
.git
.output
.env
42 changes: 23 additions & 19 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,39 +1,43 @@
FROM node:22-bookworm-slim

# Create app directory
RUN mkdir -p /app
WORKDIR /app
# Multi-stage : le stage builder installe toutes les dépendances (y compris
# devDependencies : nuxt, prisma CLI, types) pour générer .output/, un
# bundle Nitro autonome qui embarque déjà ses propres node_modules tracés.
# Le stage final ne copie que .output/ — plus besoin du toolchain de build
# ni des devDependencies (~440MB de npm install jetés une fois le build
# terminé).
FROM node:22-bookworm-slim AS build

#Install app dependencies
RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends openssl && rm -rf /var/lib/apt/lists/*

#Set environment variables

WORKDIR /app

# Bundle app source
COPY . /app
RUN npm install




#congig prisma
RUN npx prisma generate
RUN npx prisma migrate deploy
RUN npx prisma migrate status

# Build app
RUN npm run build

#Set prisma folder
RUN mkdir /app/.output/server/prisma
RUN cp /app/prisma/milestone.db /app/.output/server/prisma/milestone.db
RUN mkdir /app/.output/server/prisma && cp /app/prisma/milestone.db /app/.output/server/prisma/milestone.db


FROM node:22-bookworm-slim

# openssl requis par le moteur Prisma au runtime (mêmes bibliothèques que
# lors du `prisma generate` du stage builder, binaryTargets="native").
RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends openssl && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=build /app/.output /app/.output

ENV NUXT_HOST=0.0.0.0
ENV NUXT_PORT=3000

# Expose port
EXPOSE 3000 5555

#start app
CMD [ "npm", "run", "start" ]
# Appel direct du serveur Nitro déjà construit — pas besoin du CLI nuxt
# (devDependency, absente de ce stage) pour lancer `npm run start`.
CMD ["node", ".output/server/index.mjs"]
Loading