networks: backend: volumes: postgres-data: redis-data: venv-data: services: app: image: astral/uv:python3.14-alpine volumes: - .:/app - venv-data:/venv working_dir: /app environment: - APP_ENV=dev - PORT=5000 - BIND=0.0.0.0 - DB_URI=postgres://tout-doux:tout-doux@postgres:5432/tout-doux - CACHE_URI=redis://redis:6379 - VIRTUAL_ENV=/venv - UV_LINK_MODE=copy command: uv run --active tout-doux --debug networks: - backend depends_on: postgres: condition: service_healthy redis: condition: service_healthy vite: image: oven/bun:latest volumes: - .:/app working_dir: /app command: bun run dev ports: - "5173:5173" networks: - backend postgres: image: postgres:17 healthcheck: test: ["CMD-SHELL", "pg_isready -d tout-doux -U tout-doux"] interval: 10s timeout: 60s retries: 3 start_period: 60s environment: - POSTGRES_DB=tout-doux - POSTGRES_USER=tout-doux - POSTGRES_PASSWORD=tout-doux - PGDATA=/var/lib/postgresql/data/pgdata volumes: - "postgres-data:/var/lib/postgresql/data" networks: - backend redis: image: redis:8 healthcheck: test: ["CMD", "redis-cli", "--raw", "incr", "ping"] interval: 1s retries: 20 volumes: - redis-data:/data networks: - backend