主机上的卷 – 拒绝Postgres的权限(Mac OS)

我开始Postgresql与以下卷的图像

/Users/me/Desktop/volumes/postgresql/data:/var/lib/postgresql/data 

根据docker文件,它应该工作,因为docker工应该有权访问Mac OS上的/Users目录。 在创build和运行容器后,我可以看到空目录/Users/me/Desktop/volumes/postgresql/data被创build,但Postgres不会启动并在日志中显示这些行:

 could not create directory "/var/lib/postgresql/data/global": Permission denied 

我做错了什么?

您的目录属于不同的用户,然后是用户,即执行容器的用户。

你可以改变你的目录吗?

 chmod 777 /Users/me/Desktop/volumes/postgresql/data 

如果您可以使用此设置启动您的容器,那么这个缺less的权限是根本原因。

然后你可以尝试开始你的容器

 run -u uid ... 

并在macos上指定你的用户的用户名。 你也必须在boot2docker中创build用户,即

 boot2docker ssh sudo sh adduser <anyuserid> -u <your uid> 

我有同样的问题。

我所做的是通过在Virtual Box中创build文件夹来解决这个问题。

设置你的docker-compose.yml postgresql文件夹:

 /Users/me/Desktop/volumes/postgresql/data 

 /root/data 

在Virtual Box的Docker上input并创build数据文件夹