Files
aiform_dev/docker-compose.full.yml
AI Assistant 0f82eef08d 🚀 MVP: FastAPI + React форма с SMS верификацией
 Инфраструктура: PostgreSQL, Redis, RabbitMQ, S3
 Backend: SMS сервис + API endpoints
 Frontend: React форма (3 шага) + SMS верификация
2025-10-24 16:19:58 +03:00

138 lines
3.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: '3.8'
services:
# PostgreSQL для логов, метрик, аналитики
postgres:
image: postgres:16-alpine
container_name: erv_postgres
restart: unless-stopped
environment:
POSTGRES_DB: erv_platform
POSTGRES_USER: erv_user
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-erv_secure_pass_2024}
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
ports:
- "5433:5432" # 5433 чтобы не конфликтовать с системным PostgreSQL
volumes:
- postgres_data:/var/lib/postgresql/data
- ./backend/db/init.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- erv_network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U erv_user -d erv_platform"]
interval: 10s
timeout: 5s
retries: 5
# Redis для кеширования, сессий, rate limiting
redis:
image: redis:7-alpine
container_name: erv_redis
restart: unless-stopped
command: redis-server --requirepass ${REDIS_PASSWORD:-redis_secure_pass_2024} --appendonly yes
ports:
- "6380:6379" # 6380 чтобы не конфликтовать с системным Redis
volumes:
- redis_data:/data
networks:
- erv_network
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 10s
timeout: 3s
retries: 5
# pgAdmin для управления PostgreSQL (опционально)
pgadmin:
image: dpage/pgadmin4:latest
container_name: erv_pgadmin
restart: unless-stopped
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL:-admin@erv.local}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD:-admin}
PGADMIN_LISTEN_PORT: 80
ports:
- "5050:80"
volumes:
- pgadmin_data:/var/lib/pgadmin
networks:
- erv_network
depends_on:
- postgres
# FastAPI Backend
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: erv_backend
restart: unless-stopped
env_file:
- .env
environment:
# Database
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: erv_platform
POSTGRES_USER: erv_user
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-erv_secure_pass_2024}
# Redis
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD:-redis_secure_pass_2024}
# RabbitMQ (внешний)
RABBITMQ_HOST: ${RABBITMQ_HOST:-185.197.75.249}
RABBITMQ_PORT: ${RABBITMQ_PORT:-5672}
RABBITMQ_USER: ${RABBITMQ_USER:-admin}
RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD:-tyejvtej}
# API URLs
OCR_SERVICE_URL: ${OCR_SERVICE_URL:-http://147.45.146.17:8001}
ports:
- "8100:8000"
volumes:
- ./backend/app:/app/app
- ./backend/logs:/app/logs
- uploads:/app/uploads
networks:
- erv_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
# React Frontend
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: erv_frontend
restart: unless-stopped
ports:
- "5173:3000"
environment:
- VITE_API_URL=http://147.45.146.17:8100
networks:
- erv_network
depends_on:
- backend
networks:
erv_network:
driver: bridge
volumes:
postgres_data:
driver: local
redis_data:
driver: local
pgadmin_data:
driver: local
uploads:
driver: local