refactor: pré-installer .techradar dans l'image
This commit is contained in:
@@ -7,6 +7,7 @@ WORKDIR /app
|
||||
ENV HUSKY=0
|
||||
ENV HUSKY_SKIP_INSTALL=1
|
||||
ENV NODE_PATH=/app/node_modules
|
||||
ENV NODE_ENV=development
|
||||
|
||||
# Installation des dépendances système
|
||||
RUN apk add --no-cache git
|
||||
@@ -15,16 +16,17 @@ RUN apk add --no-cache git
|
||||
COPY package.json package-lock.json* ./
|
||||
|
||||
# Installation des dépendances Node
|
||||
# Utilisation de --ignore-scripts pour éviter l'erreur husky
|
||||
RUN npm install --legacy-peer-deps --ignore-scripts
|
||||
|
||||
# Installation des dépendances nécessaires au build
|
||||
RUN npm install gray-matter glob
|
||||
|
||||
# Copie du reste du projet
|
||||
COPY . .
|
||||
RUN chmod +x scripts/start-business.sh
|
||||
|
||||
# Préparer .techradar une fois pour toutes (évite les réinstallations au runtime)
|
||||
RUN npx techradar install && \
|
||||
node -e "const fs=require('fs');const p='.techradar/package.json';const pkg=JSON.parse(fs.readFileSync(p,'utf8'));pkg.scripts=pkg.scripts||{};pkg.scripts.prepare='';fs.writeFileSync(p,JSON.stringify(pkg,null,2));" && \
|
||||
cd .techradar && npm install --legacy-peer-deps && npm run build:icons && cd ..
|
||||
|
||||
# --- CONFIGURATION BUSINESS ---
|
||||
# Application de la logique Business (remplacement de la config et des données)
|
||||
RUN cp radar-business/config-business.json config.json && \
|
||||
|
||||
@@ -4,46 +4,7 @@ set -e
|
||||
export HUSKY=0
|
||||
export HUSKY_SKIP_INSTALL=1
|
||||
export NODE_PATH=/app/node_modules
|
||||
export NPM_CONFIG_IGNORE_SCRIPTS=1
|
||||
|
||||
# Forcer l'installation des devDependencies (gray-matter) même si NODE_ENV=production dans l'environnement
|
||||
ORIGINAL_NODE_ENV="${NODE_ENV:-}"
|
||||
export NODE_ENV=development
|
||||
|
||||
# Initialiser/réinstaller localement .techradar
|
||||
npx techradar install || true
|
||||
|
||||
# Patch du package.json interne pour désactiver husky et forcer gray-matter
|
||||
if [ -f .techradar/package.json ]; then
|
||||
node <<'EOF'
|
||||
const fs = require('fs');
|
||||
const pkgPath = '.techradar/package.json';
|
||||
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
||||
pkg.scripts = pkg.scripts || {};
|
||||
pkg.scripts.prepare = '';
|
||||
pkg.devDependencies = pkg.devDependencies || {};
|
||||
if (!pkg.devDependencies['gray-matter']) {
|
||||
pkg.devDependencies['gray-matter'] = '^4.0.3';
|
||||
}
|
||||
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
|
||||
EOF
|
||||
|
||||
cd .techradar
|
||||
npm install --legacy-peer-deps
|
||||
npm install gray-matter
|
||||
NPM_CONFIG_IGNORE_SCRIPTS=0 npm run build:icons
|
||||
cd ..
|
||||
fi
|
||||
|
||||
# Restaurer la valeur initiale de NODE_ENV pour le run
|
||||
if [ -n "$ORIGINAL_NODE_ENV" ]; then
|
||||
export NODE_ENV="$ORIGINAL_NODE_ENV"
|
||||
else
|
||||
unset NODE_ENV
|
||||
fi
|
||||
|
||||
unset NPM_CONFIG_IGNORE_SCRIPTS
|
||||
|
||||
# Lancer le serveur
|
||||
npm run serve -- --port "${PORT:-3000}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user