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-pgsql: build: context: ./Dockerfiles/build-pgsql/${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_PGSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX} depends_on: - zabbix-build-base 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} profiles: - all 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-pgsql build: context: ./Dockerfiles/server-pgsql/${OL_OS_TAG_SHORT} cache_from: - "${OL_CACHE_FROM}" args: BUILD_BASE_IMAGE: ${BUILD_BASE_PGSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX} image: zabbix-server-pgsql:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX} volumes: - /etc/timezone:/etc/timezone:ro depends_on: - postgres-server - zabbix-build-pgsql labels: 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-pgsql: extends: file: compose_zabbix_components.yaml service: zabbix-web-apache-pgsql build: context: ./Dockerfiles/web-apache-pgsql/${OL_OS_TAG_SHORT} cache_from: - "${OL_CACHE_FROM}" args: BUILD_BASE_IMAGE: ${BUILD_BASE_PGSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX} image: zabbix-web-apache-pgsql:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX} volumes: - /etc/timezone:/etc/timezone:ro depends_on: - postgres-server - zabbix-build-pgsql labels: com.zabbix.os: "${OL_OS_TAG}" zabbix-web-nginx-pgsql: extends: file: compose_zabbix_components.yaml service: zabbix-web-nginx-pgsql build: context: ./Dockerfiles/web-nginx-pgsql/${OL_OS_TAG_SHORT} cache_from: - "${OL_CACHE_FROM}" args: BUILD_BASE_IMAGE: ${BUILD_BASE_PGSQL_IMAGE}:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX} image: zabbix-web-nginx-pgsql:${ZABBIX_OL_IMAGE_TAG}${ZABBIX_LOCAL_IMAGE_TAG_POSTFIX} volumes: - /etc/timezone:/etc/timezone:ro depends_on: - postgres-server - zabbix-build-pgsql 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-pgsql 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-pgsql 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-pgsql 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-pgsql labels: com.zabbix.os: "${OL_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