应用商店应用无法连接本机 PostgreSQL 服务

Bug复现:


按如图参数部署 casdoor,之后 casdoor 一直在重启中。

casdoor 日志:

1Panel-casdoor-4Y33 | goroutine 1 [running]:

1Panel-casdoor-4Y33 | github.com/casdoor/casdoor/object.(*Ormer).createTable(0xc00090a700)

1Panel-casdoor-4Y33 | /go/src/casdoor/object/ormer.go:304 +0xaf7

1Panel-casdoor-4Y33 | github.com/casdoor/casdoor/object.CreateTables()

1Panel-casdoor-4Y33 | /go/src/casdoor/object/ormer.go:125 +0x36

1Panel-casdoor-4Y33 | main.main()

1Panel-casdoor-4Y33 | /go/src/casdoor/main.go:52 +0x19a

1Panel-casdoor-4Y33 | panic: dial tcp: lookup postgresql on 127.0.0.11:53: server misbehaving

1Panel-casdoor-4Y33 |

1Panel-casdoor-4Y33 | goroutine 1 [running]:

1Panel-casdoor-4Y33 | github.com/casdoor/casdoor/object.(*Ormer).createTable(0xc0008326c0)

1Panel-casdoor-4Y33 | /go/src/casdoor/object/ormer.go:304 +0xaf7

1Panel-casdoor-4Y33 | github.com/casdoor/casdoor/object.CreateTables()

1Panel-casdoor-4Y33 | /go/src/casdoor/object/ormer.go:125 +0x36

1Panel-casdoor-4Y33 | main.main()

1Panel-casdoor-4Y33 | /go/src/casdoor/main.go:52 +0x19a

询问 AI,告诉我是因为 Casdoor 程序尝试通过主机名 postgresql 连接数据库,但 Docker 内部的 DNS 服务器(127.0.0.11)无法解析这个名字,或者数据库容器还没准备好。 配置文件中指定的数据库地址是 postgresql,但在 1Panel 自动创建的网络中,数据库容器的名字叫 1Panel-postgresql-xxxx

之前安装其他使用数据库的应用也出现过这个问题,当时是手动修改 docker-compose 来解决的

1Panel 版本:v2.0.16

你机器上有几个 pgsql ?

刚刚注意到还有一个部署 dokploy 时,附带部署的 dokploy-pgsql,原来是这个导致的?

正常情况下不会 postgresql 是 pg 数据库的 servicename 正常情况下也是能解析的
你手动修改配置文件改成容器名称试试

直接把 dokploy 删干净了,然后使用默认参数重新部署 casdoor 成功。
谢谢解答:pray: