mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
fix: inject env var
This commit is contained in:
@ -7,6 +7,7 @@ WORKDIR /app
|
|||||||
COPY package.json package-lock.json ./
|
COPY package.json package-lock.json ./
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
COPY . .
|
COPY . .
|
||||||
|
COPY prod.env .env
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# Development stage
|
# Development stage
|
||||||
@ -38,7 +39,7 @@ USER nextjs
|
|||||||
ENV HOSTNAME="0.0.0.0"
|
ENV HOSTNAME="0.0.0.0"
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
ENTRYPOINT ["/app/entrypoint.sh"]
|
ENTRYPOINT ["/app/entrypoint.sh"]
|
||||||
|
CMD ["node", "server.js"]
|
||||||
|
|
||||||
# Final stage selection
|
# Final stage selection
|
||||||
FROM ${BUILD_MODE}
|
FROM ${BUILD_MODE}
|
||||||
|
|||||||
@ -1,58 +1,24 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Configuration des chemins
|
|
||||||
CONFIG_FILE="/app/server.js"
|
|
||||||
TEMP_FILE="/app/server.tmp.js"
|
|
||||||
ENV_FILE="/app/.env"
|
|
||||||
|
|
||||||
# Fonction pour échapper les caractères spéciaux
|
# Fonction pour échapper les caractères spéciaux
|
||||||
escape_value() {
|
escape_value() {
|
||||||
echo "$1" | sed 's/[\/&]/\\&/g'
|
echo "$1" | sed 's/[\/&]/\\&/g'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Copie initiale du fichier
|
replace_value() {
|
||||||
cp $CONFIG_FILE $TEMP_FILE
|
key=$1
|
||||||
|
value=$2
|
||||||
# Lecture du fichier .env s'il existe
|
file=$3
|
||||||
if [ -f "$ENV_FILE" ]; then
|
|
||||||
echo "📄 Lecture des variables depuis ${ENV_FILE}"
|
|
||||||
|
|
||||||
while IFS='=' read -r key value || [ -n "$key" ]; do
|
|
||||||
# Ignorer les lignes vides ou commentaires
|
|
||||||
case $key in
|
|
||||||
''|\#*) continue ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Nettoyage des variables
|
|
||||||
key=$(echo "$key" | tr -d ' ')
|
|
||||||
value=$(echo "$value" | tr -d '"' | tr -d "'")
|
|
||||||
|
|
||||||
# Vérifier si c'est une variable NEXT_PUBLIC
|
|
||||||
case $key in
|
|
||||||
NEXT_PUBLIC_*)
|
|
||||||
escaped_value=$(escape_value "$value")
|
escaped_value=$(escape_value "$value")
|
||||||
sed -i "s|\"${key}\":\"[^\"]*\"|\"${key}\":\"${escaped_value}\"|g" $TEMP_FILE
|
find . -type f -exec sed -i "s|_${key}_|${value}|g" {} \;
|
||||||
echo "Configuration depuis .env : ${key}=${value}"
|
}
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done < "$ENV_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Parcours des variables d'environnement (priorité sur .env)
|
|
||||||
echo "Vérification des variables d'environnement"
|
|
||||||
env | grep '^NEXT_PUBLIC_' | while read -r line; do
|
|
||||||
var_name=$(echo "$line" | cut -d= -f1)
|
|
||||||
var_value=$(echo "$line" | cut -d= -f2-)
|
|
||||||
|
|
||||||
escaped_value=$(escape_value "$var_value")
|
printenv | grep NEXT_PUBLIC_ | while read -r line ; do
|
||||||
sed -i "s|\"${var_name}\":\"[^\"]*\"|\"${var_name}\":\"${escaped_value}\"|g" $TEMP_FILE
|
key=$(echo $line | cut -d "=" -f1)
|
||||||
echo "Override depuis ENV : ${var_name}=${var_value}"
|
value=$(echo $line | cut -d "=" -f2)
|
||||||
|
|
||||||
|
replace_value $key $value /app/
|
||||||
done
|
done
|
||||||
|
exec "$@"
|
||||||
# Mise à jour du fichier de configuration
|
|
||||||
mv $TEMP_FILE $CONFIG_FILE
|
|
||||||
echo "Configuration mise à jour avec succès"
|
|
||||||
|
|
||||||
# Démarrage du serveur
|
|
||||||
echo "Démarrage du serveur Next.js"
|
|
||||||
exec node server.js
|
|
||||||
2
Front-End/prod.env
Normal file
2
Front-End/prod.env
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
NEXT_PUBLIC_API_URL=_NEXT_PUBLIC_API_URL_
|
||||||
|
NEXT_PUBLIC_USE_FAKE_DATA=_NEXT_PUBLIC_USE_FAKE_DATA_
|
||||||
@ -40,7 +40,6 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- TZ=Europe/Paris
|
- TZ=Europe/Paris
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
volumes:
|
- NEXT_PUBLIC_API_URL=http://toto:8080
|
||||||
- ./conf/env:/app/.env
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- backend
|
- backend
|
||||||
Reference in New Issue
Block a user