Postgres docker 容器外部访问问题,当使用绑定安装的数据目录和预先存在的数据库时
Postgres docker container external access issue when using a bind mounted data directory with pre-existing database
我正在尝试使用现有数据库中的数据目录并启动一个新的 postgres docker 容器(相同版本 9.5),其“/var/lib/postgresql/data”绑定安装到数据目录。
我发现即使我能够启动容器并在容器内使用 psql 连接到它,外部连接也会因密码无效而失败。尽管我设置了 POSTGRES_USER、POSTGRES_DB 和 POSTGRES_PASSWORD 环境变量。
有没有办法让它工作?我也尝试了 this 方法但是 运行 进入权限错误,
"sh: 1: /usr/local/bin/init.sh: Permission denied"
谢谢
当您的 user/group id 与文件所有者不匹配时,就会发生这种情况。你应该 运行 你的 docker 和 --user
请看Arbitrary --user Notes
of https://hub.docker.com/_/postgres
希望能帮助您解决问题。
好的,我找到了执行此操作的方法,事实证明它非常简单。我所做的只是,
- 添加脚本并将其复制到我的 Dockerfiledocker-entrypoint-initdb.d 中
- 在脚本中我有一个循环等待数据库启动 & 运行 在重置超级用户密码和权限之前。
谢谢
我正在尝试使用现有数据库中的数据目录并启动一个新的 postgres docker 容器(相同版本 9.5),其“/var/lib/postgresql/data”绑定安装到数据目录。
我发现即使我能够启动容器并在容器内使用 psql 连接到它,外部连接也会因密码无效而失败。尽管我设置了 POSTGRES_USER、POSTGRES_DB 和 POSTGRES_PASSWORD 环境变量。
有没有办法让它工作?我也尝试了 this 方法但是 运行 进入权限错误,
"sh: 1: /usr/local/bin/init.sh: Permission denied"
谢谢
当您的 user/group id 与文件所有者不匹配时,就会发生这种情况。你应该 运行 你的 docker 和 --user
请看Arbitrary --user Notes
of https://hub.docker.com/_/postgres
希望能帮助您解决问题。
好的,我找到了执行此操作的方法,事实证明它非常简单。我所做的只是,
- 添加脚本并将其复制到我的 Dockerfiledocker-entrypoint-initdb.d 中
- 在脚本中我有一个循环等待数据库启动 & 运行 在重置超级用户密码和权限之前。
谢谢