gpt4 book ai didi

Postgresql 在尝试使用音量时引发 'data directory has wrong ownership'

转载 作者:IT老高 更新时间:2023-10-28 21:26:14 26 4
gpt4 key购买 nike

我正在尝试在 docker 容器中运行 postgresql,但当然我需要让我的数据库数据保持持久性,所以我尝试使用仅数据容器来公开卷以在此位置存储数据库。

所以,我的数据容器有这样的 Dockerfile:

FROM ubuntu

# Create data directory
RUN mkdir -p /data/postgresql

# Create /data volume
VOLUME /data/postgresql

我运行的:

docker run --name postgresql_data lyapun/postgresql_data true

在我的 postgresql.conf 中我设置了:

data_directory = '/data/postgresql'

然后我以这种方式运行我的 postgresql 容器:

docker run -d --name postgre --volumes-from postgresql_data lyapun/postgresql

我得到了:

2014-07-04 07:45:57 GMT FATAL:  data directory "/data/postgresql" has wrong ownership
2014-07-04 07:45:57 GMT HINT: The server must be started by the user that owns the data directory.

如何处理这个问题?我用谷歌搜索了很多关于使用 docker 卷的 postgresql 的信息,但我没有找到任何东西。

谢谢!

最佳答案

好的,我好像找到了解决这个问题的方法。

不要以这种方式运行 postgres:

CMD ["/usr/lib/postgresql/9.1/bin/postgres", "-D", "/var/lib/postgresql/9.1/main", "-c", "config_file=/etc/postgresql/9.1/main/postgresql.conf"]

我写了 bash 脚本:

chown -Rf postgres:postgres /data/postgresql
chmod -R 700 /data/postgresql
sudo -u postgres /usr/lib/postgresql/9.1/bin/postgres -D /var/lib/postgresql/9.1/main -c config_file=/etc/postgresql/9.1/main/postgresql.conf

并将postgresql图像中的CMD替换为:

CMD ["bash", "/run.sh"]

有效!

关于Postgresql 在尝试使用音量时引发 'data directory has wrong ownership',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24569394/

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