Skip to content
Open
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
48 changes: 24 additions & 24 deletions apps/server-nestjs/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,39 @@ FROM docker.io/node:24.13.1-bullseye-slim AS dev

WORKDIR /app

COPY --chown=node:root package.json ./
COPY package.json ./

# Activer pnpm via corepack (version définie dans package.json "packageManager")
RUN npm install --global corepack@latest && corepack enable && corepack enable pnpm

# Copier les manifestes workspace (nécessaires pour que pnpm résolve les dépendances)
COPY --chown=node:root pnpm-workspace.yaml pnpm-lock.yaml ./
COPY pnpm-workspace.yaml pnpm-lock.yaml ./

# Manifestes des packages workspace dont server-nestjs dépend
COPY --chown=node:root apps/server-nestjs/package.json ./apps/server-nestjs/package.json

COPY --chown=node:root packages/eslintconfig/package.json ./packages/eslintconfig/package.json
COPY --chown=node:root packages/shared/package.json ./packages/shared/package.json
COPY --chown=node:root packages/logger/package.json ./packages/logger/package.json
COPY --chown=node:root packages/hooks/package.json ./packages/hooks/package.json
COPY --chown=node:root packages/test-utils/package.json ./packages/test-utils/package.json
COPY --chown=node:root packages/tsconfig/package.json ./packages/tsconfig/package.json

COPY --chown=node:root plugins/argocd/package.json ./plugins/argocd/package.json
COPY --chown=node:root plugins/gitlab/package.json ./plugins/gitlab/package.json
COPY --chown=node:root plugins/harbor/package.json ./plugins/harbor/package.json
COPY --chown=node:root plugins/keycloak/package.json ./plugins/keycloak/package.json
COPY --chown=node:root plugins/nexus/package.json ./plugins/nexus/package.json
COPY --chown=node:root plugins/sonarqube/package.json ./plugins/sonarqube/package.json
COPY --chown=node:root plugins/vault/package.json ./plugins/vault/package.json
COPY apps/server-nestjs/package.json ./apps/server-nestjs/package.json

COPY packages/eslintconfig/package.json ./packages/eslintconfig/package.json
COPY packages/shared/package.json ./packages/shared/package.json
COPY packages/logger/package.json ./packages/logger/package.json
COPY packages/hooks/package.json ./packages/hooks/package.json
COPY packages/test-utils/package.json ./packages/test-utils/package.json
COPY packages/tsconfig/package.json ./packages/tsconfig/package.json

COPY plugins/argocd/package.json ./plugins/argocd/package.json
COPY plugins/gitlab/package.json ./plugins/gitlab/package.json
COPY plugins/harbor/package.json ./plugins/harbor/package.json
COPY plugins/keycloak/package.json ./plugins/keycloak/package.json
COPY plugins/nexus/package.json ./plugins/nexus/package.json
COPY plugins/sonarqube/package.json ./plugins/sonarqube/package.json
COPY plugins/vault/package.json ./plugins/vault/package.json

# Installer toutes les dépendances afin de permettre le build des libs partagées
RUN pnpm install --frozen-lockfile

# Copier les sources des packages workspace
COPY --chown=node:root plugins/ ./plugins/
COPY --chown=node:root packages/ ./packages/
COPY --chown=node:root apps/server-nestjs/ ./apps/server-nestjs/
COPY plugins/ ./plugins/
COPY packages/ ./packages/
COPY apps/server-nestjs/ ./apps/server-nestjs/

# Build des libs partagées (génère dist/ et types/)
RUN pnpm --filter @cpn-console/logger run build
Expand Down Expand Up @@ -90,9 +90,9 @@ RUN mkdir -p /home/node/logs && chmod 770 -R /home/node/logs \
&& chown node:root /app

# Copier l'artefact de build et les node_modules de production
COPY --chown=node:root --from=build /app/build .
COPY --chown=node:root --from=build /app/apps/server-nestjs/dist ./dist
# COPY --chown=node:root --from=build /app/build/node_modules ./node_modules
COPY --from=build /app/build .
COPY --from=build /app/apps/server-nestjs/dist ./dist
# COPY --from=build /app/build/node_modules ./node_modules

# Regénérer le client Prisma dans l'image de production
RUN npm run db:generate
Expand Down