Files
ocr_performance_lab/docker-compose.yml
2025-08-12 12:22:42 +09:00

96 lines
2.1 KiB
YAML

services:
ocr_perf_api:
build:
context: .
image: ocr_perf_api
container_name: ocr_perf_api
ports:
- "8892:8892"
volumes:
- ./:/workspace
env_file:
- .env
environment:
- TZ=Asia/Seoul
- CELERY_BROKER_URL=redis://ocr_perf_redis:6379/0
- CELERY_RESULT_BACKEND=redis://ocr_perf_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_redis:
condition: service_healthy
ocr_perf_worker:
image: ocr_perf_api
container_name: ocr_perf_worker
volumes:
- ./:/workspace
environment:
- TZ=Asia/Seoul
- CELERY_BROKER_URL=redis://ocr_perf_redis:6379/0
- CELERY_RESULT_BACKEND=redis://ocr_perf_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_redis:
condition: service_healthy
ocr_perf_flower:
image: ocr_perf_api
container_name: ocr_perf_flower
environment:
- TZ=Asia/Seoul
- FLOWER_UNAUTHENTICATED_API=true
- TESSDATA_PREFIX=/usr/share/tessdata
entrypoint: celery --broker=redis://ocr_perf_redis:6379/0 flower --port=5557
ports:
- "5557:5557"
networks:
- ocr_perf_net
depends_on:
- ocr_perf_redis
ocr_perf_redis:
image: redis:7-alpine
container_name: ocr_perf_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