Files
Imago/docker-compose/docker-compose.yml
T
bruno 90b94e653e
CI / Lint & Format (push) Failing after 16s
CI / Tests (push) Has been skipped
CI / Security Scan (push) Failing after 17s
CI / Docker Build (push) Has been skipped
refactor: backend port 8000 → 7000 pour eviter conflits applicatifs
- Dockerfile: EXPOSE + CMD uvicorn --port 7000
- app/config.py: PORT default 8000 → 7000
- nginx default.conf: 6x proxy_pass backend:8000 → backend:7000
- docker-compose.prod.yml: BACKEND_PORT default 8001 → 7000, internal 7000
- docker-compose.yml (dev): 8000:8000 → 7000:7000
- imago-admin/docker-compose.yml: VITE_API_BASE_URL + port mapping → 7000
- .env.example: BACKEND_PORT=8001 → 7000
- deploy.sh: defaults + invites port 8001 → 7000
2026-08-06 11:40:18 -04:00

118 lines
3.5 KiB
YAML

# =============================================================================
# Imago — Développement local (build from source, stack complet)
# =============================================================================
# Usage:
# docker compose -f docker-compose/docker-compose.yml up -d
#
# Ce compose build les images depuis le code source et démarre tous les
# services nécessaires : PostgreSQL, Redis, MinIO (S3), API, Worker.
# =============================================================================
services:
# ── Base de données ───────────────────────────────────────
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: imago
POSTGRES_PASSWORD: imago
POSTGRES_DB: imago
ports:
- "5432:5432"
volumes:
- pgdata_dev:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U imago -d imago"]
interval: 5s
timeout: 5s
retries: 5
# ── Redis ─────────────────────────────────────────────────
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redisdata_dev:/data
command: redis-server --appendonly yes
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5
# ── MinIO (stockage S3 local) ─────────────────────────────
minio:
image: minio/minio
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
ports:
- "9000:9000"
- "9001:9001"
volumes:
- miniodata_dev:/data
# ── API Backend ───────────────────────────────────────────
backend:
build:
context: ..
dockerfile: Dockerfile
ports:
- "7000:7000"
env_file:
- ../.env
environment:
DATABASE_URL: postgresql+asyncpg://imago:imago@db:5432/imago
REDIS_URL: redis://redis:6379/0
STORAGE_BACKEND: s3
S3_BUCKET: imago
S3_ENDPOINT_URL: http://minio:9000
S3_ENDPOINT_PUBLIC: http://localhost:9000
S3_ACCESS_KEY: minioadmin
S3_SECRET_KEY: minioadmin
S3_REGION: us-east-1
volumes:
- uploads_dev:/app/data/uploads
- thumbnails_dev:/app/data/thumbnails
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
# ── ARQ Worker ────────────────────────────────────────────
worker:
build:
context: ..
dockerfile: Dockerfile
command: python worker.py
env_file:
- ../.env
environment:
DATABASE_URL: postgresql+asyncpg://imago:imago@db:5432/imago
REDIS_URL: redis://redis:6379/0
STORAGE_BACKEND: s3
S3_BUCKET: imago
S3_ENDPOINT_URL: http://minio:9000
S3_ACCESS_KEY: minioadmin
S3_SECRET_KEY: minioadmin
S3_REGION: us-east-1
volumes:
- uploads_dev:/app/data/uploads
- thumbnails_dev:/app/data/thumbnails
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
volumes:
pgdata_dev:
redisdata_dev:
miniodata_dev:
uploads_dev:
thumbnails_dev: