72 lines
2.5 KiB
YAML
72 lines
2.5 KiB
YAML
services:
|
|
db:
|
|
image: postgis/postgis:16-3.4
|
|
environment:
|
|
POSTGRES_DB: ${GEOINTEL_POSTGRES_DB:-geointel}
|
|
POSTGRES_USER: ${GEOINTEL_POSTGRES_USER:-geointel}
|
|
POSTGRES_PASSWORD: ${GEOINTEL_POSTGRES_PASSWORD:-geointel}
|
|
volumes:
|
|
- geointel_postgis:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${GEOINTEL_POSTGRES_USER:-geointel} -d ${GEOINTEL_POSTGRES_DB:-geointel}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
args:
|
|
GEOINTEL_INSTALL_AI: ${GEOINTEL_INSTALL_AI:-false}
|
|
environment:
|
|
DATABASE_URL: postgresql+psycopg://${GEOINTEL_POSTGRES_USER:-geointel}:${GEOINTEL_POSTGRES_PASSWORD:-geointel}@db:5432/${GEOINTEL_POSTGRES_DB:-geointel}
|
|
STORAGE_ROOT: /app/storage
|
|
CORS_ORIGINS: ${GEOINTEL_CORS_ORIGINS:-http://localhost:1202,http://127.0.0.1:1202}
|
|
MAX_UPLOAD_MB: ${GEOINTEL_MAX_UPLOAD_MB:-500}
|
|
YOLO_ENABLED: ${YOLO_ENABLED:-false}
|
|
YOLO_MODELS_DIR: ${YOLO_MODELS_DIR:-/app/models}
|
|
YOLO_MODEL_PATH: ${YOLO_MODEL_PATH:-}
|
|
YOLO_MODEL_ID: ${YOLO_MODEL_ID:-yolo-configured}
|
|
YOLO_MODEL_DISPLAY_NAME: ${YOLO_MODEL_DISPLAY_NAME:-Configured YOLO detector}
|
|
YOLO_MODEL_VERSION: ${YOLO_MODEL_VERSION:-}
|
|
YOLO_CONFIG_DIR: ${YOLO_CONFIG_DIR:-/app/storage/ultralytics}
|
|
YOLO_DEVICE: ${YOLO_DEVICE:-cpu}
|
|
YOLO_IMAGE_SIZE: ${YOLO_IMAGE_SIZE:-640}
|
|
YOLO_MAX_TILES: ${YOLO_MAX_TILES:-100}
|
|
YOLO_MAX_DETECTIONS: ${YOLO_MAX_DETECTIONS:-1000}
|
|
YOLO_BATCH_SIZE: ${YOLO_BATCH_SIZE:-1}
|
|
ports:
|
|
- "${GEOINTEL_BACKEND_PORT:-8000}:8000"
|
|
volumes:
|
|
- ${GEOINTEL_STORAGE_PATH:-./storage}:/app/storage
|
|
- ${GEOINTEL_MODELS_PATH:-./models}:/app/models
|
|
- ./fixtures:/app/fixtures:ro
|
|
command: sh /app/docker_start.sh
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5).read()\""]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 12
|
|
start_period: 30s
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
ports:
|
|
- "${GEOINTEL_FRONTEND_PORT:-1202}:80"
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1/health | grep -q '\"status\"'"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 12
|
|
start_period: 10s
|
|
|
|
volumes:
|
|
geointel_postgis:
|