Add healthchecks
This commit is contained in:
@ -10,4 +10,3 @@ LETS_ENCRYPT_ENV=production
|
|||||||
SECRET_DB_PASSWORD_VERSION=v1
|
SECRET_DB_PASSWORD_VERSION=v1
|
||||||
|
|
||||||
#RAILS_TRUSTED_PROXIES=['127.0.0.1', '::1', 'your-traefik_app']
|
#RAILS_TRUSTED_PROXIES=['127.0.0.1', '::1', 'your-traefik_app']
|
||||||
X_FRAME_OPTIONS_ALLOW_FROM=none
|
|
||||||
|
77
compose.yml
77
compose.yml
@ -38,7 +38,9 @@ x-shared:
|
|||||||
ZAMMAD_PROCESS_SCHEDULED:
|
ZAMMAD_PROCESS_SCHEDULED:
|
||||||
ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
|
ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
|
||||||
image: ghcr.io/zammad/zammad:6.3.1-95
|
image: ghcr.io/zammad/zammad:6.3.1-95
|
||||||
restart: on-failure
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
volumes:
|
volumes:
|
||||||
- zammad-storage:/opt/zammad/storage
|
- zammad-storage:/opt/zammad/storage
|
||||||
#old: - zammad-data:/opt/zammad
|
#old: - zammad-data:/opt/zammad
|
||||||
@ -70,11 +72,19 @@ services:
|
|||||||
|
|
||||||
zammad-elasticsearch:
|
zammad-elasticsearch:
|
||||||
image: bitnami/elasticsearch:8.14.3
|
image: bitnami/elasticsearch:8.14.3
|
||||||
restart: on-failure
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
volumes:
|
volumes:
|
||||||
- elasticsearch-data:/bitnami/elasticsearch/data
|
- elasticsearch-data:/bitnami/elasticsearch/data
|
||||||
environment:
|
environment:
|
||||||
- discovery.type=single-node
|
- discovery.type=single-node
|
||||||
|
healthcheck:
|
||||||
|
test: "/opt/bitnami/scripts/elasticsearch/healthcheck.sh"
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 5m
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
@ -87,16 +97,20 @@ services:
|
|||||||
command: ["zammad-init"]
|
command: ["zammad-init"]
|
||||||
depends_on:
|
depends_on:
|
||||||
- zammad-postgresql
|
- zammad-postgresql
|
||||||
restart: on-failure
|
|
||||||
user: 0:0
|
user: 0:0
|
||||||
#deploy:
|
|
||||||
# restart_policy:
|
|
||||||
# condition: on-failure
|
|
||||||
|
|
||||||
zammad-memcached:
|
zammad-memcached:
|
||||||
command: memcached -m 256M
|
command: memcached -m 256M
|
||||||
image: memcached:1.6.29-alpine
|
image: memcached:1.6.29-alpine
|
||||||
restart: on-failure
|
healthcheck:
|
||||||
|
test: 'echo "version" | nc -vn -w 1 127.0.0.1 11211'
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 5m
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
|
||||||
app:
|
app:
|
||||||
<<: *zammad-service
|
<<: *zammad-service
|
||||||
@ -118,13 +132,17 @@ services:
|
|||||||
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
|
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
|
||||||
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
||||||
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
||||||
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect,${STACK_NAME}-frameOptions"
|
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
|
||||||
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
|
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
|
||||||
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
|
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
|
||||||
- "traefik.http.middlewares.${STACK_NAME}-frameOptions.headers.customFrameOptionsValue=SAMEORIGIN"
|
|
||||||
- "traefik.http.middlewares.${STACK_NAME}-frameOptions.headers.contentSecurityPolicy=frame-ancestors ${X_FRAME_OPTIONS_ALLOW_FROM}"
|
|
||||||
- "coop-cloud.${STACK_NAME}.version=1.0.0+6.3.1-95"
|
- "coop-cloud.${STACK_NAME}.version=1.0.0+6.3.1-95"
|
||||||
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
|
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8080"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 5m
|
||||||
|
|
||||||
zammad-postgresql:
|
zammad-postgresql:
|
||||||
image: postgres:15.7-alpine
|
image: postgres:15.7-alpine
|
||||||
@ -132,32 +150,66 @@ services:
|
|||||||
POSTGRES_DB: zammad_production
|
POSTGRES_DB: zammad_production
|
||||||
POSTGRES_USER: zammad
|
POSTGRES_USER: zammad
|
||||||
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
|
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
|
||||||
restart: on-failure
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
volumes:
|
volumes:
|
||||||
- postgresql-data:/var/lib/postgresql/data
|
- postgresql-data:/var/lib/postgresql/data
|
||||||
# Backup Restore
|
# Backup Restore
|
||||||
#- zammad-backup:/var/tmp/zammad:ro
|
#- zammad-backup:/var/tmp/zammad:ro
|
||||||
secrets:
|
secrets:
|
||||||
- db_password
|
- db_password
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready", "-U", "zammad"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 2m
|
||||||
|
|
||||||
zammad-railsserver:
|
zammad-railsserver:
|
||||||
<<: *zammad-service
|
<<: *zammad-service
|
||||||
command: ["zammad-railsserver"]
|
command: ["zammad-railsserver"]
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 5m
|
||||||
|
|
||||||
|
|
||||||
zammad-redis:
|
zammad-redis:
|
||||||
image: redis:7.2.5-alpine
|
image: redis:7.2.5-alpine
|
||||||
restart: on-failure
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
volumes:
|
volumes:
|
||||||
- redis-data:/data
|
- redis-data:/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 1m
|
||||||
|
|
||||||
zammad-scheduler:
|
zammad-scheduler:
|
||||||
<<: *zammad-service
|
<<: *zammad-service
|
||||||
command: ["zammad-scheduler"]
|
command: ["zammad-scheduler"]
|
||||||
|
healthcheck:
|
||||||
|
test: 'ps x | grep "[b]ackground-worker.rb"'
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 5m
|
||||||
|
|
||||||
zammad-websocket:
|
zammad-websocket:
|
||||||
<<: *zammad-service
|
<<: *zammad-service
|
||||||
command: ["zammad-websocket"]
|
command: ["zammad-websocket"]
|
||||||
|
healthcheck:
|
||||||
|
test: 'ruby -rsocket -e "s = TCPSocket.new(''localhost'', 6042); s.close"'
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 5m
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
elasticsearch-data:
|
elasticsearch-data:
|
||||||
@ -165,7 +217,6 @@ volumes:
|
|||||||
redis-data:
|
redis-data:
|
||||||
zammad-backup:
|
zammad-backup:
|
||||||
zammad-storage:
|
zammad-storage:
|
||||||
#zammad-data:
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user