Я столкнулся с той же проблемой, заставляя контейнер приложения общаться с моим контейнером postgres.Я исправил это в три этапа:
- определить диапазон IP-адресов сети для сети Docker
# +----------------------+
# | docker-compose.yml |
# +----------------------+
networks:
my_docker_network:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
Белый список того же диапазона сетевых IP-адресов в файле postgres pg_hba.conf
# +---------------+
# | pg_hba.conf |
# +---------------+
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 10.5.0.0/16 trust
Я использовал trust
, чтобы избежать проблем с аутентификацией, но вы можете указать md5
, cert
или любой другой действительный метод аутентификации.
разрешить postgres прослушивать внешние хосты в файле postgresql.conf
# +-------------------+
# | postgresql.conf |
# +-------------------+
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;