You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmftools/bookscraper/docker-compose.yml

152 lines
4.7 KiB

services:
# ----------------------------------------------------------
# Redis broker & backend (NO SNAPSHOTS, NO AOF)
# ----------------------------------------------------------
redis:
image: redis:7
container_name: bookscraper_redis
command:
[
"redis-server",
"--save",
"",
"--appendonly",
"no",
"--stop-writes-on-bgsave-error",
"no",
]
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 2s
timeout: 2s
retries: 20
restart: "no"
# ----------------------------------------------------------
# Controller Worker
# ----------------------------------------------------------
worker_controller:
build:
context: .
dockerfile: docker/Dockerfile.scraper
container_name: worker_controller
command: celery -A celery_app worker -Q controller -n controller@%h -l INFO
depends_on:
redis:
condition: service_healthy
env_file:
- .env
environment:
- PYTHONUNBUFFERED=1
volumes:
- .:/app
- /Users/peter/mnt/asustor/Sync/bookscraper/books:/Users/peter/mnt/asustor/Sync/bookscraper/books
- /Users/peter/mnt/asustor/Sync/bookscraper/db:/Users/peter/mnt/asustor/Sync/bookscraper/db
restart: "no"
# ----------------------------------------------------------
# Web GUI
# ----------------------------------------------------------
web:
build:
context: .
dockerfile: docker/Dockerfile.web
container_name: bookscraper_web
volumes:
- .:/app
- /Users/peter/mnt/asustor/Sync/bookscraper/books:/Users/peter/mnt/asustor/Sync/bookscraper/books
- /Users/peter/mnt/asustor/Sync/bookscraper/db:/Users/peter/mnt/asustor/Sync/bookscraper/db
depends_on:
redis:
condition: service_healthy
ports:
- "5011:5000"
environment:
- REDIS_BROKER=redis://redis:6379/0
- REDIS_BACKEND=redis://redis:6379/1
env_file:
- .env
restart: "no"
# ----------------------------------------------------------
# Download Worker
# ----------------------------------------------------------
worker_download:
build:
context: .
dockerfile: docker/Dockerfile.scraper
container_name: worker_download
volumes:
- .:/app
- /Users/peter/mnt/asustor/Sync/bookscraper/books:/Users/peter/mnt/asustor/Sync/bookscraper/books
- /Users/peter/mnt/asustor/Sync/bookscraper/db:/Users/peter/mnt/asustor/Sync/bookscraper/db
depends_on:
redis:
condition: service_healthy
env_file:
- .env
command: celery -A celery_app worker -Q download -n download@%h -l INFO
restart: "no"
# ----------------------------------------------------------
# Parse Worker
# ----------------------------------------------------------
worker_parse:
build:
context: .
dockerfile: docker/Dockerfile.scraper
container_name: worker_parse
volumes:
- .:/app
- /Users/peter/mnt/asustor/Sync/bookscraper/books:/Users/peter/mnt/asustor/Sync/bookscraper/books
- /Users/peter/mnt/asustor/Sync/bookscraper/db:/Users/peter/mnt/asustor/Sync/bookscraper/db
depends_on:
redis:
condition: service_healthy
env_file:
- .env
command: celery -A celery_app worker -Q parse -n parse@%h -l INFO
restart: "no"
# ----------------------------------------------------------
# Save Worker
# ----------------------------------------------------------
worker_save:
build:
context: .
dockerfile: docker/Dockerfile.scraper
container_name: worker_save
volumes:
- .:/app
- /Users/peter/mnt/asustor/Sync/bookscraper/books:/Users/peter/mnt/asustor/Sync/bookscraper/books
- /Users/peter/mnt/asustor/Sync/bookscraper/db:/Users/peter/mnt/asustor/Sync/bookscraper/db
depends_on:
redis:
condition: service_healthy
env_file:
- .env
command: celery -A celery_app worker -Q save -n save@%h -l INFO
restart: "no"
# ----------------------------------------------------------
# Scraping Worker
# ----------------------------------------------------------
worker_scraping:
build:
context: .
dockerfile: docker/Dockerfile.scraper
container_name: worker_scraping
volumes:
- .:/app
- /Users/peter/mnt/asustor/Sync/bookscraper/books:/Users/peter/mnt/asustor/Sync/bookscraper/books
- /Users/peter/mnt/asustor/Sync/bookscraper/db:/Users/peter/mnt/asustor/Sync/bookscraper/db
depends_on:
redis:
condition: service_healthy
env_file:
- .env
command: celery -A celery_app worker -Q scraping -n scraping@%h -l INFO
restart: "no"