newsreader/docker-compose.yml
Sonny Bakker b8559f0499
Some checks failed
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint Pipeline failed
ci/woodpecker/push/tests Pipeline was successful
Remove reddit code
2025-03-27 22:02:12 +01:00

121 lines
2.4 KiB
YAML

volumes:
logs:
media:
postgres-data:
static-files:
x-db-env: &db-env
POSTGRES_HOST:
POSTGRES_PORT:
POSTGRES_DB:
POSTGRES_USER:
POSTGRES_PASSWORD:
x-django-build-env: &django-build-env
<<: *db-env
DJANGO_SECRET_KEY:
DJANGO_SETTINGS_MODULE:
x-django-env: &django-env
<<: *django-build-env
VERSION:
# Email
EMAIL_HOST:
EMAIL_PORT:
EMAIL_HOST_USER:
EMAIL_HOST_PASSWORD:
EMAIL_USE_TLS:
EMAIL_USE_SSL:
EMAIL_DEFAULT_FROM:
# Sentry
SENTRY_DSN:
services:
db:
environment:
<<: *db-env
image: postgres:15
healthcheck:
# Note that --env-file should be used to set these correctly
test: /usr/bin/pg_isready --username="${POSTGRES_USER}" --dbname="${POSTGRES_DB}"
interval: 5s
timeout: 10s
retries: 10
volumes:
- postgres-data:/var/lib/postgresql/data
rabbitmq:
image: rabbitmq:4
memcached:
image: memcached:1.6
entrypoint:
- memcached
- -m 64
celery:
build:
context: .
dockerfile: ./docker/django
target: production
args:
<<: *django-build-env
environment:
<<: *django-env
command: |
/app/.venv/bin/celery --app newsreader
--workdir /app/src/
worker --loglevel INFO
--concurrency 2
--beat
--scheduler django
-n worker1@%h
-n worker2@%h
healthcheck:
test: celery --app newsreader status || exit 1
interval: 10s
timeout: 10s
retries: 5
depends_on:
rabbitmq:
condition: service_started
memcached:
condition: service_started
db:
condition: service_healthy
django:
condition: service_healthy
volumes:
- logs:/app/logs
django:
build:
context: .
dockerfile: ./docker/django
target: production
args:
<<: *django-build-env
environment:
<<: *django-env
entrypoint: /app/bin/docker-entrypoint.sh
command: |
/app/.venv/bin/gunicorn --bind 0.0.0.0:8000
--workers 3
--chdir /app/src/
newsreader.wsgi:application
healthcheck:
test: /usr/bin/curl --fail http://django:8000 || exit 1
interval: 10s
timeout: 10s
retries: 5
depends_on:
memcached:
condition: service_started
db:
condition: service_healthy
volumes:
- logs:/app/logs
- media:/app/media
- static-files:/app/static