Zabbix docker compose проблема с портами
Пытаюсь поднять сервис мониторинга Zabbix из официального источника https://github.com/zabbix/zabbix-docker. Запускаю docker compose -f docker-compose_v3_ubuntu_pgsql_latest.yaml up -d.
При запуске docker compose поднимаются 3 контейнера: с server, nginx и postgres. Хочу прокинуть порт 5432 из контейнера с базой наружу, чтобы можно было к ней подключаться.
Столкнулся с проблемой: добавил ports в compose_databases, но даже после полного перезапуска compose порт не показывается в docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
81e27217f150 postgres:17-alpine "docker-entrypoint.s…" 3 seconds ago Up 2 seconds zabbix-docker-postgres-server-1
7f3c11a8d1be zabbix/zabbix-server-pgsql:ubuntu-7.4-latest "/usr/bin/docker-ent…" 41 hours ago Up 41 hours 0.0.0.0:10051->10051/tcp, [::]:10051->10051/tcp zabbix-docker-zabbix-server-1
eed7fbc66fa9 zabbix/zabbix-web-nginx-pgsql:ubuntu-7.4-latest "docker-entrypoint.sh" 41 hours ago Up 41 hours (healthy) 0.0.0.0:80->8080/tcp, [::]:80->8080/tcp, 0.0.0.0:443->8443/tcp, [::]:443->8443/tcp zabbix-docker-zabbix-web-nginx-pgsql-1
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
ports:
- "5432:5432"
networks:
database:
aliases:
- postgres-server
В docker compose config порт есть:
postgres-server:
...
ports:
- mode: ingress
target: 5432
published: "5432"
protocol: tcp
...
Порт на хосте точно не занят, в логах ошибок нет. При обычном запуске docker run postgres:17-alpine порт прокидывается нормально. Буду благодарен любым советам.
Все важные ссылки:
https://github.com/zabbix/zabbix-docker/blob/7.4/docker-compose_v3_ubuntu_pgsql_latest.yaml
https://github.com/zabbix/zabbix-docker/blob/7.4/compose_databases.yaml
https://github.com/zabbix/zabbix-docker/blob/7.4/compose_zabbix_components.yaml
Ответы (1 шт):
В docker-compose_v3_ubuntu_pgsql_latest.yaml была область:
database:
driver: bridge
enable_ipv6: "${DATABASE_NETWORK_ENABLE_IPV6}"
internal: true
ipam:
driver: "${DATABASE_NETWORK_DRIVER}"
Я убрал internal: true и порт прокинулся.