gpt4 book ai didi

postgresql - 带有外部数据容器的 Docker postgresql 容器

转载 作者:行者123 更新时间:2023-11-29 11:39:08 25 4
gpt4 key购买 nike

我有一个带有 Dockerfile 的数据容器:

from ubuntu:latest

VOLUME ["/var/lib/postgresql/9.3/main"]

和一个 postgresql 服务容器:

#install stuff
............

# Set the default command to run when starting the container
CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]

然后我启动数据容器和 postgresql 容器:

docker run -i -t -d --name data docker:data

docker run -i -t -p 49131:5432 --name postgresql --volumes-from data --rm docker:postgresql

它说:

FATAL:  data directory "/var/lib/postgresql/9.3/main" has wrong ownership
HINT: The server must be started by the user that owns the data directory.

/var/lib/postgresql/9.3/main 文件夹似乎属于 data 容器中的根用户。然后我附加到容器,添加用户并将该文件夹的所有者更改为 postgres:

docker attach data
useradd postgres -s /bin/bash
chown -R postgres:postgres /var/lib/postgresql

然后再次出现同样的错误。

问题是什么,我错过了什么?

最佳答案

postgres 用户可能没有在单独的容器中分配相同的 UID。

虽然没有必要让它变得如此困难,只需使用 postgres 图像来创建您的数据容器,例如:

docker run --name data-container postgres echo "Data Container"

这样所有的权限都会被正确设置。有关详细信息,请参阅:

关于postgresql - 带有外部数据容器的 Docker postgresql 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28779857/

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