/
gr.ev.vl
/
TestGen
Обзор
Документация
Войти
/
gr.ev.vl
/
TestGen
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master2
docker-compose.yml
143 строки
3 KB
gr.ev.vl
Initial commit
06 июн 2026, 02:41
06 июн 2026, 02:41
02fb1fb
Код
Авторство
О чём код?
version: "3.9" services: # --- База данных --- db: image: pgvector/pgvector:pg16 container_name: testgen-db restart: unless-stopped environment: POSTGRES_DB: ${DB_NAME:-testgen} POSTGRES_USER: ${DB_USER:-testgen} POSTGRES_PASSWORD: ${DB_PASSWORD:-password} volumes: - pgdata:/var/lib/postgresql/data ports: - "${DB_PORT:-5432}:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-testgen} -d ${DB_NAME:-testgen}"] interval: 10s timeout: 5s retries: 5 networks: - testgen-network # --- Redis --- redis: image: redis:7-alpine container_name: testgen-redis restart: unless-stopped command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru volumes: - redisdata:/data ports: - "${REDIS_PORT:-6379}:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 networks: - testgen-network # --- Backend (FastAPI) --- backend: build: context: ./backend dockerfile: Dockerfile container_name: testgen-backend restart: unless-stopped depends_on: db: condition: service_healthy redis: condition: service_healthy environment: - DATABASE_URL=postgresql+asyncpg://${DB_USER:-testgen}:${DB_PASSWORD:-password}@db:5432/${DB_NAME:-testgen} - REDIS_URL=redis://redis:6379/0 - CELERY_BROKER_URL=redis://redis:6379/1 - CELERY_RESULT_BACKEND=redis://redis:6379/2 env_file: - .env volumes: - ./storage:/app/storage - ./backend/src:/app/src ports: - "${BACKEND_PORT:-8000}:8000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 networks: - testgen-network # --- Celery Worker --- worker: build: context: ./backend dockerfile: Dockerfile.worker container_name: testgen-worker restart: unless-stopped depends_on: db: condition: service_healthy redis: condition: service_healthy environment: - DATABASE_URL=postgresql+asyncpg://${DB_USER:-testgen}:${DB_PASSWORD:-password}@db:5432/${DB_NAME:-testgen} - REDIS_URL=redis://redis:6379/0 - CELERY_BROKER_URL=redis://redis:6379/1 - CELERY_RESULT_BACKEND=redis://redis:6379/2 env_file: - .env command: > celery -A src.testgen.tasks.celery_app worker --loglevel=info --concurrency=4 --queues=llm_high_priority,llm_low_priority,export --max-tasks-per-child=100 networks: - testgen-network # --- Celery Beat (периодические задачи) --- beat: build: context: ./backend dockerfile: Dockerfile.worker container_name: testgen-beat restart: unless-stopped depends_on: - redis command: > celery -A src.testgen.tasks.celery_app beat --loglevel=info --schedule=/tmp/celerybeat-schedule networks: - testgen-network # --- Frontend --- frontend: build: context: ./frontend dockerfile: Dockerfile container_name: testgen-frontend restart: unless-stopped depends_on: - backend ports: - "${FRONTEND_PORT:-5173}:5173" volumes: - ./frontend/src:/app/src networks: - testgen-network volumes: pgdata: driver: local redisdata: driver: local networks: testgen-network: driver: bridge