Files
docqube_backend/docker-compose.test.yml
T
2026-09-08 11:00:05 +05:30

149 lines
3.2 KiB
YAML

x-logging: &default-logging
driver: "local"
options:
max-size: "20m"
max-file: "5"
compress: "true"
services:
redis:
image: redis:8.2-alpine
container_name: redis_docqube_test
restart: always
env_file:
- .env.test
command:
- sh
- -c
- |
redis-server \
--requirepass "$$REDIS_PASSWORD" \
--appendonly yes \
--maxmemory 512mb \
--maxmemory-policy allkeys-lru
volumes:
- redis_docqube_test:/data
networks:
- docqube_test
healthcheck:
test: ["CMD-SHELL", "redis-cli -a \"$$REDIS_PASSWORD\" ping | grep PONG"]
interval: 5s
timeout: 3s
retries: 5
logging: *default-logging
qdrant:
image: qdrant/qdrant:v1.19.0
container_name: qdrant_docqube_test
restart: always
volumes:
- qdrant_docqube_test:/qdrant/storage
networks:
- docqube_test
healthcheck:
test: ["CMD-SHELL", "cat /proc/net/tcp | grep -i 18BD"]
interval: 10s
timeout: 5s
retries: 3
logging: *default-logging
clamav:
image: clamav/clamav-debian:1.4_base
container_name: clamav_container_test
restart: always
environment:
- CLAMD_CONF_ConcurrentDatabaseReload=no
volumes:
- clamav_data_test:/var/lib/clamav
networks:
- docqube_test
deploy:
resources:
limits:
memory: 2G
healthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 3310"]
interval: 15s
timeout: 5s
retries: 12
start_period: 60s
logging: *default-logging
api:
build:
context: .
dockerfile: Dockerfile
image: docqube_backend:test
pull_policy: never
container_name: docqube_api_test
restart: unless-stopped
env_file:
- .env.test
ports:
- "20002:20002"
depends_on:
redis:
condition: service_healthy
qdrant:
condition: service_healthy
clamav:
condition: service_healthy
networks:
- docqube_test
healthcheck:
test:
[
"CMD-SHELL",
"python -c \"import urllib.request; urllib.request.urlopen('http://127.0.0.1:20002/api/health/live', timeout=3).read()\""
]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
logging: *default-logging
worker:
image: docqube_backend:test
pull_policy: never
container_name: docqube_worker_test
restart: unless-stopped
command:
- celery
- -A
- app.tasks.celery_app:celery_app
- worker
- --loglevel=info
env_file:
- .env.test
depends_on:
redis:
condition: service_healthy
qdrant:
condition: service_healthy
clamav:
condition: service_healthy
networks:
- docqube_test
healthcheck:
test:
[
"CMD-SHELL",
"celery -A app.tasks.celery_app:celery_app inspect ping -d celery@$$HOSTNAME | grep -q pong"
]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
logging: *default-logging
networks:
docqube_test:
driver: bridge
volumes:
redis_docqube_test:
qdrant_docqube_test:
clamav_data_test: