# Lancement du pipeline LiDAR — TOUJOURS via docker compose : # docker compose up -d --build serve # TOUJOURS --build : le code est baké dans # # l'image, sans --build l'ANCIEN code tourne # # (carte interactive + API sur http://localhost:8973) # docker compose logs -f serve # journal du serveur # docker compose down # arrêt # Traitement ponctuel (sans serveur) — --build pour la même raison : # docker compose run --rm --build process [-r 0.5,0.2 | --force | --file ...] # Jupyter (opt-in) : # docker compose --profile interactive up -d jupyter services: # Carte interactive + API de génération (mode ./run.sh --serve) serve: build: . image: lidar-lidar container_name: lidar-serve init: true user: "1000:1000" gpus: all ports: - "8973:8973" volumes: # input/ en écriture : l'API y télécharge les dalles IGN manquantes - ./input:/data/input - ./output:/data/output environment: - TZ=Europe/Paris - LIDAR_INPUT_DIR=/data/input - LIDAR_OUTPUT_DIR=/data/output # Les générations lancées depuis la carte utilisent le GPU - LIDAR_GPU=1 - LIDAR_WORKERS=2 # Machine de traitement pour une webapp distante (Raspberry Pi) : # décommenter et définir la même valeur en LIDAR_REMOTE_TOKEN là-bas # (protège /api/generate, /api/preview, /api/rebuild, /api/sync). # - LIDAR_API_TOKEN=change-moi command: python3 -m uvicorn lidar_pipeline.webapp:app --host 0.0.0.0 --port 8973 restart: unless-stopped # Traitement ponctuel des dalles input/ (une passe puis arrêt) process: build: . image: lidar-lidar container_name: lidar-process init: true user: "1000:1000" gpus: all volumes: - ./input:/data/input - ./output:/data/output environment: - TZ=Europe/Paris command: ["python3", "-m", "lidar_pipeline", "/data/input", "-o", "/data/output", "-r", "0.5,0.2", "-g", "all"] profiles: - process # Exploration interactive (opt-in : --profile interactive) jupyter: build: . image: lidar-lidar container_name: lidar-jupyter init: true ports: - "8888:8888" volumes: - ./input:/data/input - ./output:/data/output - ./notebooks:/workspace command: > bash -c "pip install jupyter && \ jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token=''" profiles: - interactive