mirror of
https://github.com/lemeow125/DRF_Template.git
synced 2024-11-17 04:09:25 +08:00
112 lines
2.3 KiB
YAML
112 lines
2.3 KiB
YAML
version: "3.9"
|
|
|
|
services:
|
|
# Django Backend
|
|
django:
|
|
env_file: .env
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: drf_template:latest
|
|
ports:
|
|
- "${BACKEND_PORT}:${BACKEND_PORT}"
|
|
environment:
|
|
- PYTHONBUFFERED=1
|
|
- RUN_TYPE=web
|
|
volumes:
|
|
- .:/code
|
|
depends_on:
|
|
- postgres
|
|
|
|
# Django Celery Worker
|
|
celery:
|
|
env_file: .env
|
|
environment:
|
|
- RUN_TYPE=worker
|
|
image: drf_template:latest
|
|
volumes:
|
|
- .:/code
|
|
- ./chrome:/chrome
|
|
- ./firefox:/firefox
|
|
- ./dumps:/dumps
|
|
depends_on:
|
|
- django
|
|
- postgres
|
|
- redis
|
|
# Runs multiple worker instances
|
|
scale: 4
|
|
|
|
# Django Celery Beat
|
|
celery_beat:
|
|
env_file: .env
|
|
environment:
|
|
- RUN_TYPE=beat
|
|
image: drf_template:latest
|
|
volumes:
|
|
- .:/code
|
|
depends_on:
|
|
- celery
|
|
- django
|
|
- postgres
|
|
- redis
|
|
|
|
# Django Celery Monitor
|
|
# http://localhost:5000
|
|
celery_monitor:
|
|
env_file: .env
|
|
environment:
|
|
- RUN_TYPE=monitor
|
|
image: drf_template:latest
|
|
ports:
|
|
- "${CELERY_FLOWER_PORT}:5555"
|
|
volumes:
|
|
- .:/code
|
|
depends_on:
|
|
- celery
|
|
- django
|
|
- redis
|
|
|
|
# SQL Database
|
|
postgres:
|
|
env_file: .env
|
|
image: postgres
|
|
environment:
|
|
- POSTGRES_DB=${DB_DATABASE}
|
|
- POSTGRES_USER=${DB_USERNAME}
|
|
- POSTGRES_PASSWORD=${DB_PASSWORD}
|
|
volumes:
|
|
- db-data:/var/lib/postgresql/data
|
|
|
|
# Redis Server
|
|
redis:
|
|
image: redis:latest
|
|
ports:
|
|
- "${REDIS_PORT}:6379"
|
|
|
|
# Stripe CLI Webhook Listener
|
|
stripe-listener:
|
|
env_file: .env
|
|
image: stripe/stripe-cli:latest
|
|
environment:
|
|
- STRIPE_WEBHOOK_SECRET=${STRIPE_SECRET_WEBHOOK}
|
|
- STRIPE_API_KEY=${STRIPE_SECRET_KEY}
|
|
command: listen --forward-to django:8000/api/v1/stripe/webhook/
|
|
|
|
# Email Testing Server
|
|
# http://localhost:8025
|
|
inbucket:
|
|
image: inbucket/inbucket:latest
|
|
ports:
|
|
- "8025:8025"
|
|
- "1025:1025"
|
|
environment:
|
|
- INBUCKET_LOGLEVEL=error
|
|
- INBUCKET_MAILBOXNAMING=domain
|
|
- INBUCKET_SMTP_ADDR=0.0.0.0:1025
|
|
- INBUCKET_SMTP_MAXRECIPIENTS=1000
|
|
- INBUCKET_WEB_ADDR=0.0.0.0:8025
|
|
- INBUCKET_STORAGE_TYPE=memory
|
|
- INBUCKET_STORAGE_MAILBOXMSGCAP=2000
|
|
|
|
volumes:
|
|
db-data:
|