link-stack/docker/compose/zammad.yml
Darren Clarke 43bfdaa1e3 WIP 1
2024-03-16 12:51:56 +01:00

175 lines
4.8 KiB
YAML

version: "3.4"
x-global-vars:
&common-global-variables
TZ: Etc/UTC
x-zammad-vars:
&common-zammad-variables
MEMCACHE_SERVERS: "zammad-memcached:11211"
REDIS_URL: "redis://zammad-redis:6379"
POSTGRESQL_HOST: "zammad-postgresql"
POSTGRESQL_PORT: "5432"
POSTGRESQL_USER: "zammad"
POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD}
POSTGRESQL_DB: "zammad_production"
ELASTICSEARCH_HOST: ${OPENSEARCH_HOST}
ELASTICSEARCH_USER: ${OPENSEARCH_USER}
ELASTICSEARCH_PASS: ${OPENSEARCH_PASS}
ELASTICSEARCH_SSL_VERIFY: false # this doesn't set es_ssl_verify as expected, but ideally it would
ELASTICSEARCH_SCHEMA: "https"
services:
zammad-init:
platform: linux/x86_64
container_name: zammad-init
command: [ "zammad-init" ]
depends_on:
- zammad-postgresql
environment:
<<: [ *common-zammad-variables, *common-global-variables ]
POSTGRESQL_USER: zammad
POSTGRESQL_PASS: ${ZAMMAD_DATABASE_PASSWORD}
build:
context: ../zammad
args:
EMBEDDED: "true"
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
restart: on-failure
user: 0:0
volumes:
- zammad-config-nginx:/etc/nginx/sites-enabled
- zammad-var:/opt/zammad/var
zammad-memcached:
container_name: zammad-memcached
command: memcached -m 256M
build: ../memcached
image: registry.gitlab.com/digiresilience/link/link-stack/memcached:${LINK_STACK_VERSION}
restart: ${RESTART}
environment:
<<: *common-global-variables
zammad-nginx:
platform: linux/x86_64
container_name: zammad-nginx
command: [ "zammad-nginx" ]
expose:
- "8080"
ports:
- 8001:8080
depends_on:
- zammad-railsserver
build:
context: ../zammad
args:
EMBEDDED: "true"
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
restart: ${RESTART}
environment:
<<: *common-global-variables
NGINX_SERVER_SCHEME: https
VIRTUAL_HOST: ${ZAMMAD_VIRTUAL_HOST}
VIRTUAL_PORT: 8080
volumes:
- zammad-config-nginx:/etc/nginx/sites-enabled:ro
- zammad-var:/opt/zammad/var:ro
zammad-postgresql:
container_name: zammad-postgresql
environment:
<<: [ *common-global-variables, *common-zammad-variables ]
POSTGRES_USER: zammad
POSTGRES_PASSWORD: ${ZAMMAD_DATABASE_PASSWORD}
build: ../postgresql
image: registry.gitlab.com/digiresilience/link/link-stack/postgresql:${LINK_STACK_VERSION}
restart: ${RESTART}
ports:
- 5432:5432
volumes:
- postgresql-data:/var/lib/postgresql/data
zammad-railsserver:
platform: linux/x86_64
container_name: zammad-railsserver
command: [ "zammad-railsserver" ]
depends_on:
- zammad-memcached
- zammad-postgresql
- zammad-redis
environment:
<<: [ *common-global-variables, *common-zammad-variables ]
RAILS_RELATIVE_URL_ROOT: /zammad
build:
context: ../zammad
args:
EMBEDDED: "true"
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
restart: ${RESTART}
volumes:
- zammad-var:/opt/zammad/var
- zammad-storage:/opt/zammad/storage
zammad-redis:
container_name: zammad-redis
build: ../redis
image: registry.gitlab.com/digiresilience/link/link-stack/redis:${LINK_STACK_VERSION}
restart: ${RESTART}
environment:
<<: *common-global-variables
volumes:
- redis-data:/data
zammad-scheduler:
platform: linux/x86_64
container_name: zammad-scheduler
command: [ "zammad-scheduler" ]
depends_on:
- zammad-memcached
- zammad-railsserver
- zammad-redis
environment:
<<: [ *common-global-variables, *common-zammad-variables ]
build:
context: ../zammad
args:
EMBEDDED: "true"
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
restart: ${RESTART}
volumes:
- zammad-var:/opt/zammad/var
- zammad-storage:/opt/zammad/storage
zammad-websocket:
platform: linux/x86_64
container_name: zammad-websocket
command: [ "zammad-websocket" ]
depends_on:
- zammad-memcached
- zammad-railsserver
- zammad-redis
environment:
<<: [ *common-global-variables, *common-zammad-variables ]
build:
context: ../zammad
args:
EMBEDDED: "true"
image: registry.gitlab.com/digiresilience/link/link-stack/zammad:${LINK_STACK_VERSION}
restart: ${RESTART}
volumes:
- zammad-var:/opt/zammad/var
- zammad-storage:/opt/zammad/storage
volumes:
opensearch-data:
driver: local
postgresql-data:
driver: local
redis-data:
driver: local
zammad-config-nginx:
driver: local
zammad-var:
driver: local
zammad-storage:
driver: local