From 02c4f35683b9d4fe914f25ee9bf9e585488075bd Mon Sep 17 00:00:00 2001 From: Noah Lancien Date: Tue, 28 Apr 2026 09:18:20 +0200 Subject: [PATCH] ci: :construction_worker: Added @uwil npm config in Dockerfile + ci multi-stage --- .gitlab-ci.yml | 2 +- Dockerfile | 45 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6c3e4af..1b009f4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ include: file: "security/security.yml" - project: "ldc-web/shared-ci" ref: "main" - file: "build/build.yml" + file: "build/docker-multistage.yml" - project: "ldc-web/shared-ci" ref: "main" file: "test/test.yml" diff --git a/Dockerfile b/Dockerfile index 1b64bcc..006d550 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,46 @@ +FROM composer:2.8 AS vendor + +ARG GITLAB_USER +ARG GITLAB_PASSWORD + +COPY database/ database/ + +COPY composer.json composer.json +COPY composer.lock composer.lock + +RUN composer config gitlab-token.lab.s-web.fr ${GITLAB_USER} ${GITLAB_PASSWORD} +RUN composer install \ + --ignore-platform-reqs \ + --no-interaction \ + --no-plugins \ + --no-scripts \ + --no-dev \ + --prefer-dist + +FROM node:20.18 AS frontend + +ARG GITLAB_PASSWORD + +RUN mkdir -p /app/public/build + +COPY package*.json tsconfig.json vite.config.ts .eslintrc.json .stylelintrc.json /app/ +COPY resources/ /app/resources/ +WORKDIR /app +RUN npm config set @ldc-web:registry https://lab.s-web.fr/api/v4/packages/npm/ +RUN npm config set -- '//lab.s-web.fr/api/v4/packages/npm/:_authToken' "${GITLAB_PASSWORD}" +RUN npm config set @uwil:registry https://lab.s-web.fr/api/v4/groups/ldc-web/-/packages/npm/ +RUN npm config set -- '//lab.s-web.fr/api/v4/groups/ldc-web/-/packages/npm/:_authToken' "${GITLAB_PASSWORD}" +RUN npm ci --no-audit --no-fund --loglevel=error && npm run prod + FROM registry.s-web.fr/ldc-web/projets/ldc-web-images-docker/uwil-production-8.5:${PHP_8_5_TAG} -COPY --chown=www-data:www-data . /app/srcs + +ARG USER=www-data + +COPY --chown=${USER}:${USER} . /app/srcs +COPY --from=vendor --chown=${USER}:${USER} /app/vendor/ /app/srcs/vendor/ +COPY --from=frontend --chown=${USER}:${USER} /app/public/build/ /app/srcs/public/build/ +COPY --chown=${USER}:${USER} ./resources/favicon /app/srcs/public + USER root RUN chmod -R 755 /app/srcs/storage -USER www-data +USER ${USER}