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

95 lines
3.2 KiB
YAML

# {{ ansible_managed }}
version: '3.1'
services:
app:
image: loomio/loomio:{{ docker_loomio_version }}
restart: always
expose:
- 3000
env_file: ./env
volumes:
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/uploads:/loomio/public/system
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/storage:/loomio/storage
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/files:/loomio/public/files
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/plugins:/loomio/plugins/docker
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/import:/import
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/tmp:/loomio/tmp
- ./libretic_patch_group_service.rb:/loomio/app/services/group_service.rb
depends_on:
- db
- redis
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.{{ docker_loomio_service_id }}.entrypoints=web"
- "traefik.http.routers.{{ docker_loomio_service_id }}.rule=Host(`{{ docker_loomio_fqdn }}`)"
- "traefik.http.services.{{ docker_loomio_service_id }}.loadbalancer.server.port=3000"
networks:
- traefik
- loomio
worker:
image: loomio/loomio:{{ docker_loomio_version }}
restart: always
networks:
- loomio
- traefik
env_file: ./env
environment:
- TASK=worker
volumes:
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/uploads:/loomio/public/system
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/storage:/loomio/storage
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/files:/loomio/public/files
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/plugins:/loomio/plugins/docker
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/tmp:/loomio/tmp
depends_on:
- db
- redis
channels:
image: loomio/loomio_channel_server
restart: always
env_file: ./env
depends_on:
- redis
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.{{ docker_loomio_service_id }}-channels.entrypoints=web"
- "traefik.http.routers.{{ docker_loomio_service_id }}-channels.rule=Host(`channels.{{ docker_loomio_fqdn }}`)"
- "traefik.http.services.{{ docker_loomio_service_id }}-channels.loadbalancer.server.port=5000"
networks:
- loomio
- traefik
db:
image: postgres:14
restart: always
networks:
- loomio
healthcheck:
test: "pg_isready -U {{ docker_loomio_db_user }} && psql -U {{ docker_loomio_db_user }} --list"
volumes:
- {{ docker_loomio_data_dir }}/{{ docker_loomio_service_id }}/db_data:/var/lib/postgresql/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
POSTGRES_PASSWORD: "{{ docker_loomio_db_password }}"
POSTGRES_DB: "{{ docker_loomio_db_name }}"
POSTGRES_USER: "{{ docker_loomio_db_user }}"
redis:
image: redis:5.0
restart: always
networks:
- loomio
networks:
traefik:
external: true
loomio:
internal: true