zabbix-docker/docker-compose_v3_ol_mysql_local.yaml
2023-12-14 18:15:17 +09:00

257 lines
7.1 KiB
YAML

version: '3.8'
services:
zabbix-build-base:
build:
context: ./Dockerfiles/build-base/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
image: ${BUILD_BASE_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
zabbix-build-mysql:
build:
context: ./Dockerfiles/build-mysql/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
depends_on:
- zabbix-build-base
zabbix-build-sqlite3:
build:
context: ./Dockerfiles/build-sqlite3/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: ${BUILD_BASE_SQLITE3_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
profiles:
- all
depends_on:
- zabbix-build-base
zabbix-server:
extends:
file: compose_zabbix_components.yaml
service: zabbix-server-mysql
build:
context: ./Dockerfiles/server-mysql/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-server-mysql:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- mysql-server
- zabbix-build-mysql
labels:
com.zabbix.description: "Zabbix server with MySQL database support"
com.zabbix.os: "${OL_OS_TAG}"
zabbix-proxy-sqlite3:
extends:
file: compose_zabbix_components.yaml
service: zabbix-proxy-sqlite3
build:
context: ./Dockerfiles/proxy-sqlite3/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_SQLITE3_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-proxy-sqlite3:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- zabbix-build-sqlite3
labels:
com.zabbix.os: "${OL_OS_TAG}"
zabbix-proxy-mysql:
extends:
file: compose_zabbix_components.yaml
service: zabbix-proxy-mysql
build:
context: ./Dockerfiles/proxy-mysql/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-proxy-mysql:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- mysql-server
- zabbix-build-mysql
labels:
com.zabbix.os: "${OL_OS_TAG}"
zabbix-web-apache-mysql:
extends:
file: compose_zabbix_components.yaml
service: zabbix-web-apache-mysql
build:
context: ./Dockerfiles/web-apache-mysql/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-web-apache-mysql:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- mysql-server
- zabbix-build-mysql
labels:
com.zabbix.os: "${OL_OS_TAG}"
zabbix-web-nginx-mysql:
extends:
file: compose_zabbix_components.yaml
service: zabbix-web-nginx-mysql
build:
context: ./Dockerfiles/web-nginx-mysql/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-web-nginx-mysql:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- mysql-server
- zabbix-build-mysql
labels:
com.zabbix.os: "${OL_OS_TAG}"
zabbix-agent:
extends:
file: compose_zabbix_components.yaml
service: zabbix-agent
build:
context: ./Dockerfiles/agent/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-agent:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- zabbix-build-mysql
labels:
com.zabbix.os: "${OL_OS_TAG}"
zabbix-java-gateway:
extends:
file: compose_zabbix_components.yaml
service: zabbix-java-gateway
build:
context: ./Dockerfiles/java-gateway/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-java-gateway:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
depends_on:
- zabbix-build-mysql
labels:
com.zabbix.os: "${OL_OS_TAG}"
zabbix-snmptraps:
extends:
file: compose_zabbix_components.yaml
service: zabbix-snmptraps
build:
context: ./Dockerfiles/snmptraps/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
image: zabbix-snmptraps:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
depends_on:
- zabbix-build-mysql
labels:
com.zabbix.os: "${OL_OS_TAG}"
zabbix-web-service:
extends:
file: compose_zabbix_components.yaml
service: zabbix-web-service
build:
context: ./Dockerfiles/web-service/${OL_OS_TAG_SHORT}
cache_from:
- "${OL_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-web-service:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
depends_on:
- zabbix-build-mysql
labels:
com.zabbix.os: "${OL_OS_TAG}"
mysql-server:
extends:
file: compose_databases.yaml
service: mysql-server
db-data-mysql:
extends:
file: compose_databases.yaml
service: db-data-mysql
# elasticsearch:
# extends:
# file: compose_databases.yaml
# service: elasticsearch
networks:
zbx_net_frontend:
driver: bridge
driver_opts:
com.docker.network.enable_ipv6: "${FRONTEND_ENABLE_IPV6}"
ipam:
driver: "${FRONTEND_NETWORK_DRIVER}"
config:
- subnet: "${FRONTEND_SUBNET}"
zbx_net_backend:
driver: bridge
driver_opts:
com.docker.network.enable_ipv6: "${BACKEND_ENABLE_IPV6}"
internal: true
ipam:
driver: "${BACKEND_NETWORK_DRIVER}"
config:
- subnet: "${BACKEND_SUBNET}"
zbx_net_database:
driver: bridge
driver_opts:
com.docker.network.enable_ipv6: "${DATABASE_NETWORK_ENABLE_IPV6}"
internal: true
ipam:
driver: "${DATABASE_NETWORK_DRIVER}"
volumes:
snmptraps:
# dbsocket:
secrets:
MYSQL_USER:
file: ${ENV_VARS_DIRECTORY}/.MYSQL_USER
MYSQL_PASSWORD:
file: ${ENV_VARS_DIRECTORY}/.MYSQL_PASSWORD
MYSQL_ROOT_USER:
file: ${ENV_VARS_DIRECTORY}/.MYSQL_ROOT_USER
MYSQL_ROOT_PASSWORD:
file: ${ENV_VARS_DIRECTORY}/.MYSQL_ROOT_PASSWORD
# client-key.pem:
# file: ${ENV_VARS_DIRECTORY}/.ZBX_DB_KEY_FILE
# client-cert.pem:
# file: ${ENV_VARS_DIRECTORY}/.ZBX_DB_CERT_FILE
# root-ca.pem:
# file: ${ENV_VARS_DIRECTORY}/.ZBX_DB_CA_FILE
# server-cert.pem:
# file: ${ENV_VARS_DIRECTORY}/.DB_CERT_FILE
# server-key.pem:
# file: ${ENV_VARS_DIRECTORY}/.DB_KEY_FILE