Files
Ai/docker-compose.yaml
T
2026-05-10 02:02:48 +03:30

138 lines
3.6 KiB
YAML

services:
db:
image: docker.iranserver.com/mysql:8
container_name: ai-mysql
environment:
MYSQL_DATABASE: ${DB_NAME:-ai}
MYSQL_USER: ${DB_USER:-ai}
MYSQL_PASSWORD: ${DB_PASSWORD:-changeme}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:-changeme}
volumes:
- ai_mysql_data:/var/lib/mysql
ports:
- "3307:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_PASSWORD:-changeme}"]
interval: 5s
timeout: 5s
retries: 5
networks:
- crop_network
phpmyadmin:
image: docker-mirror.liara.ir/phpmyadmin:latest
container_name: ai-phpmyadmin
environment:
PMA_HOST: ai-mysql
PMA_PORT: 3306
UPLOAD_LIMIT: 64M
ports:
- "8083:80"
depends_on:
db:
condition: service_healthy
networks:
- crop_network
redis:
image: redis:7-alpine
container_name: ai-redis
networks:
- crop_network
qdrant:
image: qdrant/qdrant:latest
container_name: ai-qdrant
ports:
- "6333:6333" # REST API
- "6334:6334" # gRPC
volumes:
- qdrant_data:/qdrant/storage
restart: unless-stopped
networks:
- crop_network
web:
build:
context: .
args:
APT_MIRROR: mirror2.chabokan.net
PIP_INDEX_URL: https://package-mirror.liara.ir/repository/pypi/simple
PIP_EXTRA_INDEX_URL: https://mirror.cdn.ir/repository/pypi/simple
PYTHON_MIRROR: mirror2.chabokan.net
container_name: ai-web
command: ["python", "manage.py", "runserver", "0.0.0.0:8000"]
volumes:
- .:/app
- ./logs:/app/logs
ports:
- "8020:8000"
env_file:
- .env
environment:
DB_HOST: ai-mysql
CELERY_BROKER_URL: redis://ai-redis:6379/0
CELERY_RESULT_BACKEND: redis://ai-redis:6379/0
QDRANT_HOST: ai-qdrant
QDRANT_PORT: 6333
ENABLE_PROXYCHAINS: ${ENABLE_PROXYCHAINS:-0}
PROXYCHAINS_PROXY_TYPE: ${PROXYCHAINS_PROXY_TYPE:-socks4}
PROXYCHAINS_PROXY_HOST: ${PROXYCHAINS_PROXY_HOST:-host.docker.internal}
PROXYCHAINS_PROXY_PORT: ${PROXYCHAINS_PROXY_PORT:-10808}
PROXYCHAINS_CHAIN_MODE: ${PROXYCHAINS_CHAIN_MODE:-strict_chain}
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
qdrant:
condition: service_started
networks:
- crop_network
extra_hosts:
- "host.docker.internal:host-gateway"
celery:
build:
context: .
args:
APT_MIRROR: mirror2.chabokan.net
PIP_INDEX_URL: https://package-mirror.liara.ir/repository/pypi/simple
PIP_EXTRA_INDEX_URL: https://mirror.cdn.ir/repository/pypi/simple
PYTHON_MIRROR: mirror2.chabokan.net
container_name: ai-celery
command: celery -A config worker -l info
volumes:
- .:/app
- ./logs:/app/logs
env_file:
- .env
environment:
DB_HOST: ai-mysql
CELERY_BROKER_URL: redis://ai-redis:6379/0
CELERY_RESULT_BACKEND: redis://ai-redis:6379/0
SKIP_MIGRATE: "1"
ENABLE_PROXYCHAINS: ${ENABLE_PROXYCHAINS:-0}
PROXYCHAINS_PROXY_TYPE: ${PROXYCHAINS_PROXY_TYPE:-socks4}
PROXYCHAINS_PROXY_HOST: ${PROXYCHAINS_PROXY_HOST:-host.docker.internal}
PROXYCHAINS_PROXY_PORT: ${PROXYCHAINS_PROXY_PORT:-10808}
PROXYCHAINS_CHAIN_MODE: ${PROXYCHAINS_CHAIN_MODE:-strict_chain}
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
networks:
- crop_network
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
ai_mysql_data:
qdrant_data:
networks:
crop_network:
external: true