gpt4 book ai didi

python - docker-compose psql 无法连接到服务器

转载 作者:太空狗 更新时间:2023-10-30 02:28:30 25 4
gpt4 key购买 nike

我查看了 bottled-water 的 github MD 文件使用 docker 使用它,我遇到了关于 postgresql 的问题

如果我运行 docker-compose run --rm postgres psql 我得到错误

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

这是我的 docker-compose.yml 文件中 postgres 和 psql 的配置

postgres:
build: ./tmp
dockerfile: Dockerfile.postgres
hostname: postgres
ports:
- '45432:5432'

psql:
image: postgres:9.4
links:
- postgres
command: 'sh -c ''exec psql -h "localhost" -p "5432" -U postgres'''

这是我的 pg_hba.conf 文件

local   all             postgres                                peer

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5

我已经在这几天了,任何形式的帮助都将不胜感激!谢谢

最佳答案

这是 docker compose 的一个记录不足的功能,因为它也让我措手不及。它在 documentation 中.看看你能不能找到它。

当链接两个容器时,它们是使用虚拟主机名链接的。如果你检查 psql 容器的 /etc/hosts,你会发现一行别名 postgres {foldername}_postgres_1 where {foldername} 是您的 docker-compose 项目的父文件夹的名称。

要使用链接容器,请使用主机名 postgres

以你的例子为例:

psql:
image: postgres:9.4
links:
- postgres
command: 'sh -c ''exec psql -h "postgres" -p "5432" -U postgres'''

您也可以配置您的代码库来使用它。如果您想在链接容器之外运行代码,只需修改主机 /etc/hosts 文件以指向所需的服务。

关于python - docker-compose psql 无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36691496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com