Files
zabbix-docker/compose_databases.yaml
2026-03-05 17:01:23 +09:00

115 lines
3.2 KiB
YAML

services:
mysql-server:
image: "${MYSQL_IMAGE}:${MYSQL_IMAGE_TAG}"
command:
- mysqld
- --skip-mysqlx
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_bin
# Only during upgrade from versions prior 6.4 and new installations (schema deployment)
- --log_bin_trust_function_creators=1
# Use TLS encryption for connections to database
# - --require-secure-transport
# - --ssl-ca=/run/secrets/root-ca.pem
# - --ssl-cert=/run/secrets/server-cert.pem
# - --ssl-key=/run/secrets/server-key.pem
restart: "${RESTART_POLICY}"
attach: false
volumes:
- ${DATA_DIRECTORY}/var/lib/mysql:/var/lib/mysql:rw
- ${ENV_VARS_DIRECTORY}/mysql_init/init_proxy_db.sql:/docker-entrypoint-initdb.d/mysql_init_proxy.sql:ro
# - mysql_socket:/var/run/mysqld/
env_file:
- path: ${ENV_VARS_DIRECTORY}/.env_db_mysql
required: true
- path: ${ENV_VARS_DIRECTORY}/.env_db_mysql_override
required: false
environment:
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/MYSQL_ROOT_PASSWORD
secrets:
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_ROOT_PASSWORD
# - server-key.pem
# - server-cert.pem
# - root-ca.pem
stop_grace_period: 1m
tmpfs: /tmp
healthcheck:
test:
- CMD-SHELL
- mysqladmin ping -uroot -p"$$(cat /run/secrets/MYSQL_ROOT_PASSWORD)" --silent
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
networks:
database:
aliases:
- mysql-server
postgres-server:
image: "${POSTGRESQL_IMAGE}:${POSTGRESQL_IMAGE_TAG}"
# command: -c ssl=on -c ssl_cert_file=/run/secrets/server-cert.pem -c ssl_key_file=/run/secrets/server-key.pem -c ssl_ca_file=/run/secrets/root-ca.pem
restart: "${RESTART_POLICY}"
attach: false
volumes:
- ${DATA_DIRECTORY}/var/lib/postgresql/data:/var/lib/postgresql/data:rw
# - ${ENV_VARS_DIRECTORY}/.ZBX_DB_CA_FILE:/run/secrets/root-ca.pem:ro
# - ${ENV_VARS_DIRECTORY}/.ZBX_DB_CERT_FILE:/run/secrets/server-cert.pem:ro
# - ${ENV_VARS_DIRECTORY}/.ZBX_DB_KEY_FILE:/run/secrets/server-key.pem:ro
# - pgsql_socket:/var/run/postgresql/
env_file:
- path: ${ENV_VARS_DIRECTORY}/.env_db_pgsql
required: true
- path: ${ENV_VARS_DIRECTORY}/.env_db_pgsql_override
required: false
secrets:
- POSTGRES_USER
- POSTGRES_PASSWORD
stop_grace_period: 1m
tmpfs: /tmp
healthcheck:
test:
- CMD-SHELL
- pg_isready -U "$$(cat /run/secrets/POSTGRES_USER)" -d "$${POSTGRES_DB}" || exit 1
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
networks:
database:
aliases:
- postgres-server
elasticsearch:
image: "${ELASTICSEARCH_IMAGE}:${ELASTICSEARCH_IMAGE_TAG}"
restart: "${RESTART_POLICY}"
attach: false
profiles:
- elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- ES_JAVA_OPTS=-Xms128m -Xmx128m
ulimits:
nofile:
soft: 65536
hard: 65536
volumes:
- ${DATA_DIRECTORY}/usr/share/elasticsearch/data:/usr/share/elasticsearch/data:rw
tmpfs: /tmp
stop_grace_period: 1m
healthcheck:
test:
- CMD-SHELL
- curl -fsS http://localhost:9200/_cluster/health?wait_for_status=yellow\\&timeout=5s >/dev/null || exit 1
interval: 10s
timeout: 5s
retries: 20
start_period: 40s
networks:
database:
aliases:
- elasticsearch