Update Dockerfile

This commit is contained in:
omaroughriss 2025-09-11 20:08:33 +02:00
parent 028d72025a
commit d5eb1e968b

View File

@ -1,46 +1,29 @@
# Install dependencies only when needed
# syntax=docker/dockerfile:1.4
FROM node:19-alpine AS deps
WORKDIR leCoffre-front
WORKDIR /leCoffre-front
COPY package.json ./
RUN apk update && apk add openssh-client git
RUN apk update && apk add --no-cache openssh-client git
COPY id_rsa /root/.ssh/id_rsa
RUN chmod 600 ~/.ssh/id_rsa
RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa
RUN ssh-keyscan github.com smart-chain-fr/leCoffre-resources.git >> /root/.ssh/known_hosts
# Forward SSH agent via BuildKit (clé jamais écrite dans l'image)
RUN --mount=type=ssh \
mkdir -p /root/.ssh && \
ssh-keyscan git.4nkweb.com >> /root/.ssh/known_hosts && \
npm install --frozen-lockfile
RUN npm install --frozen-lockfile
# Configuration pour le développement
FROM node:19-alpine AS development
WORKDIR /leCoffre-front
# Rebuild the source code only when needed
FROM node:19-alpine AS builder
WORKDIR leCoffre-front
COPY --from=deps leCoffre-front/node_modules ./node_modules
COPY --from=deps leCoffre-front/package.json package.json
COPY tsconfig.json tsconfig.json
COPY next.config.js next.config.js
COPY src src
RUN npm run build
# Production image, copy all the files and run next
FROM node:19-alpine AS production
WORKDIR leCoffre-front
COPY --from=deps /leCoffre-front/node_modules ./node_modules
COPY --from=deps /leCoffre-front/package.json ./package.json
COPY . .
# Création de l'utilisateur non-root
RUN adduser -D lecoffreuser --uid 10000 && chown -R lecoffreuser .
COPY public ./public
COPY --from=builder --chown=lecoffreuser leCoffre-front/node_modules ./node_modules
COPY --from=builder --chown=lecoffreuser leCoffre-front/.next ./.next
COPY --from=builder --chown=lecoffreuser leCoffre-front/next.config.js ./next.config.js
COPY --from=builder --chown=lecoffreuser leCoffre-front/package.json ./package.json
USER lecoffreuser
CMD ["npm", "run", "start"]
CMD ["npm", "run", "dev"]
EXPOSE 3000