Aligner le CIDR par défaut de run.sh sur la webapp et nettoyer le parsing GPU

This commit is contained in:
Antoine Jacquin
2026-09-18 21:29:17 +02:00
parent e5895df7b8
commit 7e2dcfe656
2 changed files with 19 additions and 14 deletions

View File

@ -38,9 +38,10 @@ services:
# Les tuiles sont servies à la demande depuis LIDAR_GENERATION_URL # Les tuiles sont servies à la demande depuis LIDAR_GENERATION_URL
# (cache peuplé au fil des consultations) : plus de rsync ni de sync # (cache peuplé au fil des consultations) : plus de rsync ni de sync
# périodique ; le bouton ↻ / POST /api/sync déclenchent le rebuild. # périodique ; le bouton ↻ / POST /api/sync déclenchent le rebuild.
# Réseau autorisé à lancer les générations depuis la carte (défaut # Réseau autorisé à lancer les générations depuis la carte (défaut :
# 192.168.1.0/24 ; chaîne vide = restriction levée). Les autres clients # localhost + plages privées RFC1918 ; chaîne vide = restriction levée).
# consultent la carte en lecture seule (boutons masqués, API 403). # Les autres clients consultent la carte en lecture seule (boutons
# masqués, API 403).
# - LIDAR_REGEN_CIDR=192.168.1.0/24 # - LIDAR_REGEN_CIDR=192.168.1.0/24
# Le webapp sert du HTTP. Le TLS est terminé par le reverse proxy (Traefik, # Le webapp sert du HTTP. Le TLS est terminé par le reverse proxy (Traefik,
# certificat porté par le proxy) : la configuration Traefik (routage HTTPS) # certificat porté par le proxy) : la configuration Traefik (routage HTTPS)

26
run.sh
View File

@ -118,7 +118,7 @@ while [ $# -gt 0 ]; do
-g) -g)
GPU_FLAG="--gpus all" GPU_FLAG="--gpus all"
# Check if next arg is a GPU selector (not another flag) # Check if next arg is a GPU selector (not another flag)
if [ $# -gt 1 ] && [[ ! "$2" =~ ^- ]] && [[ "$2" != "all" || "$2" == "all" ]]; then if [ $# -gt 1 ] && [[ ! "$2" =~ ^- ]]; then
GPU_ARG="$2" GPU_ARG="$2"
GPU_FLAG="--gpus all" GPU_FLAG="--gpus all"
shift 2 shift 2
@ -233,20 +233,23 @@ fi
# le journal complet est affiché. Ça évite de lancer tests/serveur/pipeline # le journal complet est affiché. Ça évite de lancer tests/serveur/pipeline
# sur une image périmée (code baké à la dernière édition). # sur une image périmée (code baké à la dernière édition).
build_image() { build_image() {
local log="/tmp/lidar_build_$$.log"
echo "Mise à jour de l'image Docker (cache)..." echo "Mise à jour de l'image Docker (cache)..."
if ! docker build -t "$IMAGE_NAME" "$SCRIPT_DIR" >/tmp/lidar_build.log 2>&1; then if ! docker build -t "$IMAGE_NAME" "$SCRIPT_DIR" >"$log" 2>&1; then
cat /tmp/lidar_build.log >&2 cat "$log" >&2
echo "Échec du build de l'image (journal : /tmp/lidar_build.log)" >&2 echo "Échec du build de l'image (journal : $log)" >&2
exit 1 exit 1
fi fi
rm -f "$log"
} }
# Image webapp légère (conteneur webapp seul — cf. Dockerfile.webapp) # Image webapp légère (conteneur webapp seul — cf. Dockerfile.webapp)
build_webapp_image() { build_webapp_image() {
local log="/tmp/lidar_webapp_build_$$.log"
echo "Mise à jour de l'image Docker webapp (cache)..." echo "Mise à jour de l'image Docker webapp (cache)..."
if ! docker build -f Dockerfile.webapp -t "$WEBAPP_IMAGE" "$SCRIPT_DIR" >/tmp/lidar_webapp_build.log 2>&1; then if ! docker build -f Dockerfile.webapp -t "$WEBAPP_IMAGE" "$SCRIPT_DIR" >"$log" 2>&1; then
cat /tmp/lidar_webapp_build.log >&2 cat "$log" >&2
echo "Échec du build de l'image webapp (journal : /tmp/lidar_webapp_build.log)" >&2 echo "Échec du build de l'image webapp (journal : $log)" >&2
exit 1 exit 1
fi fi
} }
@ -283,10 +286,11 @@ if [ "$SERVE_FLAG" -eq 1 ]; then
GPU_ENV_FLAG="-e LIDAR_GPU=1 -e CUDA_VISIBLE_DEVICES=${GPU_ARG} --gpus '""device=${GPU_ARG}""'" GPU_ENV_FLAG="-e LIDAR_GPU=1 -e CUDA_VISIBLE_DEVICES=${GPU_ARG} --gpus '""device=${GPU_ARG}""'"
fi fi
# Réseau autorisé à lancer les générations (/api/generate) : la valeur # Réseau autorisé à lancer les générations (/api/generate) : la valeur
# vient de l'environnement hôte LIDAR_REGEN_CIDR (défaut 192.168.1.0/24, # vient de l'environnement hôte LIDAR_REGEN_CIDR ; sans elle, le défaut
# chaîne vide pour lever la restriction). # de la webapp s'applique (localhost + RFC1918). Chaîne VIDE pour lever
REGEN_ENV_FLAG="-e LIDAR_REGEN_CIDR=${LIDAR_REGEN_CIDR-192.168.1.0/24}" # complètement la restriction.
exec docker run --rm --init $GPU_FLAG $CUDA_ENV_FLAG \ REGEN_ENV_FLAG="-e LIDAR_REGEN_CIDR=${LIDAR_REGEN_CIDR-127.0.0.0/8,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16}"
exec docker run --rm --init $GPU_FLAG \
--user 1000:1000 \ --user 1000:1000 \
-p "${SERVE_PORT}:8973" \ -p "${SERVE_PORT}:8973" \
-v "${INPUT_DIR}:/data/input" \ -v "${INPUT_DIR}:/data/input" \