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

273 lines
7.6 KiB
YAML

version: '3.8'
services:
zabbix-build-base:
build:
context: ./Dockerfiles/build-base/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
image: ${BUILD_BASE_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
zabbix-build-pgsql:
build:
context: ./Dockerfiles/build-pgsql/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: ${BUILD_BASE_PGSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
depends_on:
- zabbix-build-base
zabbix-build-mysql:
build:
context: ./Dockerfiles/build-mysql/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
profiles:
- all
depends_on:
- zabbix-build-base
zabbix-build-sqlite3:
build:
context: ./Dockerfiles/build-sqlite3/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: ${BUILD_BASE_SQLITE3_IMAGE}:${ZABBIX_ALPINE_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-pgsql
build:
context: ./Dockerfiles/server-pgsql/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_PGSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-server-pgsql:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- postgres-server
- zabbix-build-pgsql
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
zabbix-proxy-sqlite3:
extends:
file: compose_zabbix_components.yaml
service: zabbix-proxy-sqlite3
build:
context: ./Dockerfiles/proxy-sqlite3/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_SQLITE3_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-proxy-sqlite3:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- zabbix-build-sqlite3
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
zabbix-proxy-mysql:
extends:
file: compose_zabbix_components.yaml
service: zabbix-proxy-mysql
build:
context: ./Dockerfiles/proxy-mysql/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-proxy-mysql:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- mysql-server
- zabbix-build-mysql
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
zabbix-web-apache-pgsql:
extends:
file: compose_zabbix_components.yaml
service: zabbix-web-apache-pgsql
build:
context: ./Dockerfiles/web-apache-pgsql/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_PGSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-web-apache-pgsql:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- postgres-server
- zabbix-build-pgsql
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
zabbix-web-nginx-pgsql:
extends:
file: compose_zabbix_components.yaml
service: zabbix-web-nginx-pgsql
build:
context: ./Dockerfiles/web-nginx-pgsql/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_PGSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-web-nginx-pgsql:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- postgres-server
- zabbix-build-pgsql
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
zabbix-agent:
extends:
file: compose_zabbix_components.yaml
service: zabbix-agent
build:
context: ./Dockerfiles/agent/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-agent:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
volumes:
- /etc/timezone:/etc/timezone:ro
depends_on:
- zabbix-build-pgsql
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
zabbix-java-gateway:
extends:
file: compose_zabbix_components.yaml
service: zabbix-java-gateway
build:
context: ./Dockerfiles/java-gateway/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-java-gateway:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
depends_on:
- zabbix-build-pgsql
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
zabbix-snmptraps:
extends:
file: compose_zabbix_components.yaml
service: zabbix-snmptraps
build:
context: ./Dockerfiles/snmptraps/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
image: zabbix-snmptraps:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
depends_on:
- zabbix-build-pgsql
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
zabbix-web-service:
extends:
file: compose_zabbix_components.yaml
service: zabbix-web-service
build:
context: ./Dockerfiles/web-service/${ALPINE_OS_TAG_SHORT}
cache_from:
- "${ALPINE_CACHE_FROM}"
args:
BUILD_BASE_IMAGE: ${BUILD_BASE_MYSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
image: zabbix-web-service:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX}
depends_on:
- zabbix-build-pgsql
labels:
com.zabbix.os: "${ALPINE_OS_TAG}"
mysql-server:
extends:
file: compose_databases.yaml
service: mysql-server
postgres-server:
extends:
file: compose_databases.yaml
service: postgres-server
db-data-mysql:
extends:
file: compose_databases.yaml
service: db-data-mysql
db-data-pgsql:
extends:
file: compose_databases.yaml
service: db-data-pgsql
# 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
POSTGRES_USER:
file: ${ENV_VARS_DIRECTORY}/.POSTGRES_USER
POSTGRES_PASSWORD:
file: ${ENV_VARS_DIRECTORY}/.POSTGRES_PASSWORD