168 lines
4.1 KiB
Plaintext
168 lines
4.1 KiB
Plaintext
|
---
|
||
|
|
||
|
services:
|
||
|
init:
|
||
|
image: 'zammad/zammad-docker-compose:{{ zammad_version | mandatory }}'
|
||
|
restart: on-failure
|
||
|
command:
|
||
|
- zammad-init
|
||
|
depends_on:
|
||
|
- postgres
|
||
|
environment:
|
||
|
<<: &cache
|
||
|
MEMCACHE_SERVERS: 'memcached:11211'
|
||
|
REDIS_URL: 'redis://redis:6379'
|
||
|
{% if zammad_enable_search %}
|
||
|
ELASTICSEARCH_HOST: search
|
||
|
ELASTICSEARCH_REINDEX: '${ELASTICSEARCH_REINDEX:-false}'
|
||
|
{% else %}
|
||
|
ELASTICSEARCH_ENABLED: 'false'
|
||
|
{% endif %}
|
||
|
POSTGRESQL_DB: '{{ zammad_database_name }}'
|
||
|
POSTGRESQL_DB_CREATE: 'false'
|
||
|
POSTGRESQL_HOST: postgres
|
||
|
POSTGRESQL_PASS: '{{ zammad_database_password | mandatory }}'
|
||
|
POSTGRESQL_USER: '{{ zammad_database_user }}'
|
||
|
networks:
|
||
|
- internal
|
||
|
volumes:
|
||
|
- /srv/zammad/zammad:/opt/zammad
|
||
|
|
||
|
memcached:
|
||
|
image: 'memcached:{{ zammad_memcached_version }}-alpine'
|
||
|
restart: unless-stopped
|
||
|
command:
|
||
|
- memcached
|
||
|
- -m
|
||
|
- '{{ zammad_memcached_memory }}'
|
||
|
deploy:
|
||
|
resources:
|
||
|
limits:
|
||
|
memory: '{{ zammad_memcached_memory_limit }}'
|
||
|
networks:
|
||
|
- internal
|
||
|
|
||
|
nginx:
|
||
|
image: 'zammad/zammad-docker-compose:{{ zammad_version | mandatory }}'
|
||
|
restart: unless-stopped
|
||
|
command:
|
||
|
- zammad-nginx
|
||
|
depends_on:
|
||
|
- railsserver
|
||
|
environment:
|
||
|
NGINX_SERVER_SCHEME: 'https'
|
||
|
ZAMMAD_RAILSSERVER_HOST: 'railsserver'
|
||
|
ZAMMAD_WEBSOCKET_HOST: 'websocket'
|
||
|
expose:
|
||
|
- 8080
|
||
|
networks:
|
||
|
- internal
|
||
|
- traefik
|
||
|
volumes:
|
||
|
- /srv/zammad/zammad:/opt/zammad
|
||
|
labels:
|
||
|
traefik.enable: 'true'
|
||
|
traefik.docker.network: traefik
|
||
|
traefik.http.routers.zammad.entrypoints: websecure
|
||
|
traefik.http.routers.zammad.rule: '({{ zammad_rule | mandatory }}) && !Path(`/auth/sso`)'
|
||
|
traefik.http.routers.zammad.tls.certresolver: lehttp
|
||
|
|
||
|
postgres:
|
||
|
image: git.luj0ga.de/luca/postgres-tcpify:1
|
||
|
restart: unless-stopped
|
||
|
networks:
|
||
|
- internal
|
||
|
volumes:
|
||
|
- /var/run/postgresql:/var/run/postgresql
|
||
|
|
||
|
railsserver:
|
||
|
image: 'zammad/zammad-docker-compose:{{ zammad_version | mandatory }}'
|
||
|
restart: unless-stopped
|
||
|
command:
|
||
|
- zammad-railsserver
|
||
|
depends_on:
|
||
|
- memcached
|
||
|
- postgres
|
||
|
- redis
|
||
|
environment:
|
||
|
<<: *cache
|
||
|
ZAMMAD_WEB_CONCURRENCY: '{{ zammad_num_workers }}'
|
||
|
networks:
|
||
|
- internal
|
||
|
volumes:
|
||
|
- /srv/zammad/zammad:/opt/zammad
|
||
|
|
||
|
redis:
|
||
|
image: 'redis:{{ zammad_redis_version }}-alpine'
|
||
|
restart: unless-stopped
|
||
|
deploy:
|
||
|
resources:
|
||
|
limits:
|
||
|
memory: '{{ zammad_redis_memory_limit }}'
|
||
|
networks:
|
||
|
- internal
|
||
|
|
||
|
scheduler:
|
||
|
image: 'zammad/zammad-docker-compose:{{ zammad_version | mandatory }}'
|
||
|
restart: unless-stopped
|
||
|
command:
|
||
|
- zammad-scheduler
|
||
|
depends_on:
|
||
|
- memcached
|
||
|
- railsserver
|
||
|
- redis
|
||
|
environment: *cache
|
||
|
networks:
|
||
|
- internal
|
||
|
volumes:
|
||
|
- /srv/zammad/zammad:/opt/zammad
|
||
|
{% if zammad_enable_search %}
|
||
|
|
||
|
search:
|
||
|
build: opensearch
|
||
|
image: 'opensearch-ingest-attachment:{{ zammad_opensearch_version | mandatory }}'
|
||
|
restart: unless-stopped
|
||
|
deploy:
|
||
|
resources:
|
||
|
limits:
|
||
|
memory: '{{ zammad_opensearch_memory_limit }}'
|
||
|
environment:
|
||
|
DISABLE_INSTALL_DEMO_CONFIG: 'true'
|
||
|
DISABLE_SECURITY_PLUGIN: 'true'
|
||
|
OPENSEARCH_JAVA_OPTS: '-Xms{{ zammad_opensearch_memory_min }} -Xmx{{ zammad_opensearch_memory_max }}'
|
||
|
bootstrap.memory_lock: 'true'
|
||
|
compatibility.override_main_response_version: 'true'
|
||
|
discovery.type: single-node
|
||
|
networks:
|
||
|
- internal
|
||
|
ulimits:
|
||
|
memlock:
|
||
|
hard: -1
|
||
|
soft: -1
|
||
|
nofile:
|
||
|
hard: 65536
|
||
|
soft: 65536
|
||
|
volumes:
|
||
|
- /srv/zammad/search:/usr/share/opensearch/data
|
||
|
{% endif %}
|
||
|
|
||
|
websocket:
|
||
|
image: 'zammad/zammad-docker-compose:{{ zammad_version | mandatory }}'
|
||
|
restart: unless-stopped
|
||
|
command:
|
||
|
- zammad-websocket
|
||
|
depends_on:
|
||
|
- memcached
|
||
|
- railsserver
|
||
|
- redis
|
||
|
environment: *cache
|
||
|
networks:
|
||
|
- internal
|
||
|
volumes:
|
||
|
- /srv/zammad/zammad:/opt/zammad
|
||
|
|
||
|
networks:
|
||
|
internal:
|
||
|
traefik:
|
||
|
external: yes
|