Docker Rundeck + 本地 Postgres

Docker Rundeck + local Postgres

我正在尝试 运行 docker 图像 运行 甲板,使用 PostGres 作为数据库。

我遇到的问题是将我的本地 postgres 安装映射到 docker 运行deck 图像。 5432 上的 postgres 端口 运行s,并已使用 netstat 确认该端口已打开并正在侦听。 运行deck 的端口需要在 4440 上 运行。

我试过以下命令:

docker run -p 127.0.0.1:4440:4440 -e RUNDECK_DATABASE_URL=jdbc:postgresql://localhost/rundeck -e RUNDECK_DATABASE_DRIVER=org.postgresql.Driver -e RUNDECK_DATABASE_USERNAME=xxx -e RUNDECK_DATABASE_PASSWORD=xxx --name test-rundeck -t rundeck/rundeck:3.0.19 

但失败并出现错误:Connection to 127.0.0.1:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP

我猜是因为内部 5432 端口没有映射到 docker 容器端口 5432?

我尝试使用 -p 127.0.0.1:5432:5432 映射端口,但失败并显示错误:

Error starting userland proxy: listen tcp 127.0.0.1:5432: bind: address already in use

在这一点上,我可能只是求助于 运行将 PostGres 和 Rundeck 作为 docker 图像,但我更愿意解决这个问题。

关于如何将本地 PostGres 映射到 docker 运行 Rundeck 有什么想法吗?

找到答案了。

必须编辑 pg_hba.conf 文件以允许 docker0 ip 地址通过。

host    all             all             172.23.0.0/16           md5