ansible-role-docker_discourse/templates/docker-compose.yml

105 lines
4.0 KiB
YAML

# {{ ansible_managed }}
services:
discourse:
image: {{ docker_discourse_image_version }}
restart: always
environment:
- DISCOURSE_HOST={{ docker_discourse_fqdn }}
- DISCOURSE_DATABASE_HOST=db
- DISCOURSE_DATABASE_PORT_NUMBER=5432
- DISCOURSE_DATABASE_NAME={{ docker_discourse_db_name }}
- DISCOURSE_DATABASE_USER={{ docker_discourse_db_user }}
- DISCOURSE_DATABASE_PASSWORD={{ docker_discourse_db_password }}
- DISCOURSE_REDIS_HOST=redis
- DISCOURSE_REDIS_PORT_NUMBER=6379
- DISCOURSE_USERNAME={{ docker_discourse_admin_user }}
- DISCOURSE_PASSWORD={{ docker_discourse_admin_password }}
- DISCOURSE_EMAIL={{ docker_discourse_admin_email }}
- DISCOURSE_FIRST_NAME={{ docker_discourse_admin_first_name }}
- DISCOURSE_LAST_NAME={{ docker_discourse_admin_last_name }}
- DISCOURSE_SMTP_HOST={{ docker_discourse_smtp_host }}
- DISCOURSE_SMTP_PORT={{ docker_discourse_smtp_port }}
- DISCOURSE_SMTP_USER={{ docker_discourse_smtp_user }}
- DISCOURSE_SMTP_PASSWORD={{ docker_discourse_smtp_password }}
- DISCOURSE_SMTP_PROTOCOL={{ docker_discourse_smtp_protocol }}
- DISCOURSE_SMTP_AUTH={{ docker_discourse_smtp_auth }}
- DISCOURSE_SMTP_OPEN_TIMEOUT={{ docker_discourse_smtp_open_timeout }}
- DISCOURSE_SMTP_READ_TIMEOUT={{ docker_discourse_smtp_read_timeout }}
volumes:
- {{ docker_discourse_data_dir }}/{{ docker_discourse_service_id }}/discourse-files:/bitnami/discourse
labels:
traefik.enable: "true"
traefik.docker.network: "traefik"
traefik.http.routers.{{ docker_discourse_service_id }}.entrypoints: "web"
traefik.http.routers.{{ docker_discourse_service_id }}.rule: "Host(`{{ docker_discourse_fqdn }}`)"
traefik.http.services.{{ docker_discourse_service_id }}.loadbalancer.server.port: "3000"
networks:
- traefik
- discourse
depends_on:
- db
- redis
db:
restart: always
image: postgres:16
shm_size: 256mb
networks:
- discourse
healthcheck:
test: ['CMD', 'pg_isready', '-U', 'postgres']
volumes:
- {{ docker_discourse_data_dir }}/{{ docker_discourse_service_id }}/db_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: "{{ docker_discourse_db_name }}"
POSTGRES_USER: "{{ docker_discourse_db_user }}"
POSTGRES_PASSWORD: "{{ docker_discourse_db_password }}"
redis:
restart: always
image: redis:7-alpine
networks:
- discourse
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
volumes:
- {{ docker_discourse_data_dir }}/{{ docker_discourse_service_id }}/redis_data:/data
sidekiq:
image: {{ docker_discourse_image_version }}
depends_on:
- db
- redis
- discourse
volumes:
- {{ docker_discourse_data_dir }}/{{ docker_discourse_service_id }}/discourse-files:/bitnami/discourse
command: /opt/bitnami/scripts/discourse-sidekiq/run.sh
environment:
- DISCOURSE_HOST={{ docker_discourse_fqdn }}
- DISCOURSE_DATABASE_HOST=db
- DISCOURSE_DATABASE_PORT_NUMBER=5432
- DISCOURSE_DATABASE_NAME={{ docker_discourse_db_name }}
- DISCOURSE_DATABASE_USER={{ docker_discourse_db_user }}
- DISCOURSE_DATABASE_PASSWORD={{ docker_discourse_db_password }}
- DISCOURSE_REDIS_HOST=redis
- DISCOURSE_REDIS_PORT_NUMBER=6379
- DISCOURSE_SMTP_HOST={{ docker_discourse_smtp_host }}
- DISCOURSE_SMTP_PORT={{ docker_discourse_smtp_port }}
- DISCOURSE_SMTP_USER={{ docker_discourse_smtp_user }}
- DISCOURSE_SMTP_PASSWORD={{ docker_discourse_smtp_password }}
- DISCOURSE_SMTP_PROTOCOL={{ docker_discourse_smtp_protocol }}
- DISCOURSE_SMTP_AUTH={{ docker_discourse_smtp_auth }}
- DISCOURSE_SMTP_OPEN_TIMEOUT={{ docker_discourse_smtp_open_timeout }}
- DISCOURSE_SMTP_READ_TIMEOUT={{ docker_discourse_smtp_read_timeout }}
networks:
- discourse
- traefik
networks:
traefik:
external: true
discourse:
internal: true