当尝试使用命令启动容器时
docker-compose up --build
给出错误消息:
附加到 db_pg_16-1,站点 1 db_pg_16-1 | psql:错误:连接到“db_pg_16”(172.18.0.2)的服务器,端口 5432 失败:连接被拒绝 db_pg_16-1 | 服务器是否在该主机上运行并接受 TCP/IP 连接?db_pg_16-1 退出,代码为 2
直到某个时间点(我最近在一两周后继续从事该项目),一切都进展顺利,因此可能有人怀疑版本 16 的更新曲线
我尝试了这个问题的提示,但由于我使用docker,容器中有linux-postgres,并且在启动容器之前我无法访问它,所以没有任何帮助。
我尝试谷歌搜索:他们建议我删除不必要的网络,但没有帮助;我尝试手动更改 IP 地址(从 172.18.0.2 更改为 192.168.1.6) - 无济于事;尝试指定端口范围
数据库dockerfile:
FROM postgres:16
ENTRYPOINT ["psql", "-d", "postgresql://sandbox_user:sandbox_password@db_pg_16:5432/sandbox"]
compose.yml(剪掉站点本身容器的部分):
services:
db_pg_16:
build:
./db_docker/.
image: postgres:16
environment:
POSTGRES_DB: sandbox
POSTGRES_USER: sandbox_user
POSTGRES_PASSWORD: sandbox_password
ports:
- 5432
volumes:
- ./src/main/resources/schema.sql:/docker-entrypoint-initdb.d/schema.sql
volumes:
db:
networks:
ipv4host:
ipam:
driver: default
config:
- subnet: 192.168.1.0/24
UPD:我尝试在端口范围 5432:5434 的 Windows Sandbox 中运行该项目 - 它没有帮助,同样的错误。我还尝试在具有相同端口范围的主机上运行它 - 它没有帮助
就我个人而言,只有在将版本从 image: postgres:16更新到 image: postgres:16.2-alpine后,我才能启动容器。
我希望它能帮助某人