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.
 
 
 
 
 
 

123 lines
3.3 KiB

version: "3.7"
services:
backend:
build:
context: ..
dockerfile: docker/Dockerfile.prod
image: doccano_backend:prod
volumes:
- static_volume:/backend/staticfiles
- media:/backend/media
- tmp_file:/backend/filepond-temp-uploads
environment:
ADMIN_USERNAME: "${ADMIN_USERNAME}"
ADMIN_PASSWORD: "${ADMIN_PASSWORD}"
ADMIN_EMAIL: ${ADMIN_EMAIL}
CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq"
DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable"
ALLOW_SIGNUP: "False"
DEBUG: "False"
DJANGO_SETTINGS_MODULE: "config.settings.production"
depends_on:
- postgres
networks:
- network-backend
- network-frontend
celery:
build:
context: ..
dockerfile: docker/Dockerfile.prod
image: doccano_celery:prod
volumes:
- media:/backend/media
- tmp_file:/backend/filepond-temp-uploads
entrypoint: ["/opt/bin/prod-celery.sh"]
environment:
PYTHONUNBUFFERED: "1"
CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq"
DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable"
DJANGO_SETTINGS_MODULE: "config.settings.production"
depends_on:
- postgres
- rabbitmq
networks:
- network-backend
flower:
build:
context: ..
dockerfile: docker/Dockerfile.prod
image: doccano_flower:prod
entrypoint: ["/opt/bin/prod-flower.sh"]
environment:
PYTHONUNBUFFERED: "1"
CELERY_BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq"
DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable"
DJANGO_SETTINGS_MODULE: "config.settings.production"
FLOWER_BASIC_AUTH: "${FLOWER_BASIC_AUTH}" # Format "username:password"
depends_on:
- celery
ports:
- 5555:5555
networks:
- network-backend
- network-frontend
rabbitmq:
image: rabbitmq:3.10.7-alpine
environment:
RABBITMQ_DEFAULT_USER: "${RABBITMQ_DEFAULT_USER}"
RABBITMQ_DEFAULT_PASS: "${RABBITMQ_DEFAULT_PASS}"
ports:
- 5672:5672
networks:
- network-backend
nginx:
build:
context: ..
dockerfile: docker/Dockerfile.nginx
image: doccano_nginx:prod
command: >
/bin/sh -c
"envsubst '
$${WORKER_PROCESSES}
'< /etc/nginx/nginx.conf.template
> /etc/nginx/nginx.conf
&& nginx -g 'daemon off;'"
environment:
API_URL: "http://backend:8000"
GOOGLE_TRACKING_ID: ""
WORKER_PROCESSES: "auto"
volumes:
- static_volume:/static
- media:/media
ports:
- 80:8080
depends_on:
- backend
networks:
- network-frontend
postgres:
image: postgres:13.3-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
POSTGRES_USER: "${POSTGRES_USER}"
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
POSTGRES_DB: "${POSTGRES_DB}"
networks:
- network-backend
volumes:
postgres_data:
static_volume:
media:
tmp_file:
networks:
network-backend:
network-frontend: