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.
152 lines
4.7 KiB
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"
|