forked from mirrors/bookwyrm
015d45ef99
init.d isn't run when docker containers are run so we need to modify the entrypoint. This commit makes the ugly choice of injecting the command in automatically in order to avoid the need to manually maintain the images entrypoint.
97 lines
2.5 KiB
YAML
97 lines
2.5 KiB
YAML
version: '3'
|
|
|
|
services:
|
|
nginx:
|
|
image: nginx:latest
|
|
ports:
|
|
- 80:80
|
|
- 443:443
|
|
depends_on:
|
|
- web
|
|
networks:
|
|
- main
|
|
volumes:
|
|
- ./nginx:/etc/nginx/conf.d
|
|
- ./certbot/conf:/etc/nginx/ssl
|
|
- ./certbot/data:/var/www/certbot
|
|
- static_volume:/app/static
|
|
- media_volume:/app/images
|
|
certbot:
|
|
image: certbot/certbot:latest
|
|
command: certonly --webroot --webroot-path=/var/www/certbot --email ${EMAIL} --agree-tos --no-eff-email -d ${DOMAIN} -d www.${DOMAIN}
|
|
#command: renew --webroot --webroot-path /var/www/certbot
|
|
volumes:
|
|
- ./certbot/conf:/etc/letsencrypt
|
|
- ./certbot/logs:/var/log/letsencrypt
|
|
- ./certbot/data:/var/www/certbot
|
|
db:
|
|
build: postgres-docker
|
|
env_file: .env
|
|
entrypoint: /bookwyrm-entrypoint.sh
|
|
command: cron postgres
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
- backups:/backups
|
|
networks:
|
|
- main
|
|
web:
|
|
build: .
|
|
env_file: .env
|
|
command: gunicorn bookwyrm.wsgi:application --bind 0.0.0.0:8000
|
|
volumes:
|
|
- .:/app
|
|
- static_volume:/app/static
|
|
- media_volume:/app/images
|
|
depends_on:
|
|
- db
|
|
- celery_worker
|
|
networks:
|
|
- main
|
|
ports:
|
|
- 8000:8000
|
|
redis:
|
|
image: redis
|
|
command: redis-server --requirepass ${REDIS_PASSWORD}
|
|
volumes:
|
|
- ./redis.conf:/etc/redis/redis.conf
|
|
env_file: .env
|
|
ports:
|
|
- 6379:6379
|
|
networks:
|
|
- main
|
|
restart: on-failure
|
|
celery_worker:
|
|
env_file: .env
|
|
build: .
|
|
networks:
|
|
- main
|
|
command: celery -A celerywyrm worker -l info
|
|
volumes:
|
|
- .:/app
|
|
- static_volume:/app/static
|
|
- media_volume:/app/images
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
restart: on-failure
|
|
flower:
|
|
build: .
|
|
command: flower --port=8888 --basic_auth=${FLOWER_USER}:${FLOWER_PASSWORD}
|
|
env_file: .env
|
|
environment:
|
|
- CELERY_BROKER_URL=${CELERY_BROKER}
|
|
networks:
|
|
- main
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
restart: on-failure
|
|
ports:
|
|
- 8888:8888
|
|
volumes:
|
|
pgdata:
|
|
backups:
|
|
static_volume:
|
|
media_volume:
|
|
networks:
|
|
main:
|