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 шт):

Автор решения: pashkin5000

В 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 и порт прокинулся.

→ Ссылка