From fbdbc0a69962148f31a15153c69cac49e1e9982f Mon Sep 17 00:00:00 2001 From: omaroughriss Date: Tue, 9 Sep 2025 11:38:28 +0200 Subject: [PATCH] Update Dockerfile to clone sdk-signer-client as a dep --- Dockerfile | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2656208..ed2b4ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,49 @@ -FROM node:19-alpine - +# syntax=docker/dockerfile:1.4 +FROM node:19-alpine AS builder WORKDIR /app -# Installation des dépendances (INCLUDING dev dependencies for build) +# Outils nécessaires pour cloner le dépôt privé +RUN apk add --no-cache git openssh-client + +# Prépare SSH pour git.4nkweb.com +RUN mkdir -p /root/.ssh && \ + ssh-keyscan git.4nkweb.com >> /root/.ssh/known_hosts + +# Clone le SDK à côté de /app afin que ../sdk-signer-client soit disponible +RUN --mount=type=ssh git clone -b dev \ + ssh://git@git.4nkweb.com/4nk/sdk-signer-client.git /sdk-signer-client + +# Build de la dépendance SDK +WORKDIR /sdk-signer-client +RUN npm ci && npm run build + +# Installation des dépendances de l'app +WORKDIR /app COPY package*.json ./ RUN npm install -# Copie des fichiers source -COPY src ./src +# Copie et build des sources de l'app COPY tsconfig.json ./ - -# Compilation TypeScript +COPY src ./src RUN npm run build -# Nettoyage des dépendances de développement APRÈS la compilation -RUN npm ci --only=production && npm cache clean --force +# Réduction aux deps de production +RUN npm prune --omit=dev && npm cache clean --force + +FROM node:19-alpine + +WORKDIR /app # Création d'un utilisateur non-root RUN adduser -D appuser --uid 10000 && \ chown -R appuser /app USER appuser +# Copie des artefacts de build et des deps prod +COPY --from=builder --chown=appuser:appuser /app/package*.json ./ +COPY --from=builder --chown=appuser:appuser /app/node_modules ./node_modules +COPY --from=builder --chown=appuser:appuser /app/dist ./dist + # Configuration du port et démarrage EXPOSE 8080 CMD ["npm", "start"] \ No newline at end of file