Files
ocr_performance_lab/docker-compose.yml
2025-08-12 10:10:59 +09:00

114 lines
2.7 KiB
YAML

services:
ocr_perf_api:
build:
context: .
image: ocr_perf_api
container_name: ocr_perf_lab_api
ports:
- "8892:8892"
volumes:
- ./:/workspace
env_file:
- .env
environment:
- TZ=Asia/Seoul
- CELERY_BROKER_URL=redis://ocr_perf_lab_redis:6379/0
- CELERY_RESULT_BACKEND=redis://ocr_perf_lab_redis:6379/1
- TESSDATA_PREFIX=/usr/share/tessdata
restart: always
networks:
- ocr_perf_net
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
depends_on:
ocr_perf_lab_redis:
condition: service_healthy
healthcheck:
test:
[
"CMD-SHELL",
"curl -f http://localhost:8892/health/API && curl -f http://localhost:8892/health/Redis && curl -f http://localhost:8892/health/Celery && curl -f http://localhost:8892/health/Flower",
]
interval: 60s
timeout: 5s
retries: 3
start_period: 10s
ocr_perf_lab_worker:
image: ocr_perf_api
container_name: ocr_perf_lab_worker
volumes:
- ./:/workspace
environment:
- TZ=Asia/Seoul
- CELERY_BROKER_URL=redis://ocr_perf_lab_redis:6379/0
- CELERY_RESULT_BACKEND=redis://ocr_perf_lab_redis:6379/1
- TESSDATA_PREFIX=/usr/share/tessdata
command: celery -A tasks worker --loglevel=info --concurrency=4
networks:
- ocr_perf_net
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
depends_on:
ocr_perf_lab_redis:
condition: service_healthy
ocr_perf_celery_flower:
image: ocr_perf_api
container_name: ocr_perf_celery_flower
environment:
- TZ=Asia/Seoul
- FLOWER_UNAUTHENTICATED_API=true
- TESSDATA_PREFIX=/usr/share/tessdata
entrypoint: celery --broker=redis://ocr_perf_lab_redis:6379/0 flower --port=5557
ports:
- "5557:5557"
networks:
- ocr_perf_net
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
depends_on:
ocr_perf_lab_redis:
condition: service_healthy
ocr_perf_lab_redis:
image: redis:7-alpine
container_name: ocr_perf_lab_redis
command:
[
"redis-server",
"--maxmemory",
"256mb",
"--maxmemory-policy",
"allkeys-lru",
]
ports:
- "6383:6379"
restart: always
networks:
- ocr_perf_net
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
ocr_perf_net:
driver: bridge