加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在尝试使用卷时,Postgresql引发“数据目录具有错误的所有权”

发布时间:2020-12-16 03:39:44 所属栏目:安全 来源:网络整理
导读:我正在尝试在docker容器中运行postgresql,但当然我需要让我的数据库数据是持久的,所以我试图使用仅数据容器暴露卷来存储数据库在这个地方. 所以,我的数据容器有这样的Dockerfile: FROM ubuntu# Create data directoryRUN mkdir -p /data/postgresql# Create

我正在尝试在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"]

有用!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读