Car*_*eur 7 postgresql linux permissions docker
我正在尝试使用 docker 配置 postgresql 安装。
FROM ubuntu:13.10
ADD . /db
# install postgres
# ...
RUN chown postgres:postgres /db -R && \
chmod 700 /db -R
USER postgres
RUN /etc/init.d/postgresql start &&\
createdb test &&\
psql -d test -f /db/all.sql
Run Code Online (Sandbox Code Playgroud)
我可以访问文件夹/db,但不能访问/db/plpgsql(其中包含由/db/all.sql 执行的文件)
我在 /db/plpgsql 上尝试了 chmod 777 但它也不起作用,权限被拒绝。
postgres@c364bdd94652:/$ ls -l | grep db
drwxrwxrwx 5 postgres postgres 4096 Jul 10 17:39 db
postgres@c364bdd94652:/$ cd db/
postgres@c364bdd94652:/db$ ls -l
-rwxrwxrwx 1 postgres postgres 2567 Jul 10 16:34 Dockerfile
-rwxrwxrwx 1 postgres postgres 358 Jul 10 14:53 all.sql
-rwxrwxrwx 1 postgres postgres 642 Jul 10 15:35 init.sql
drwxrwxrwx 10 postgres postgres 4096 Jul 10 16:36 plpgsql
postgres@c364bdd94652:/db$ cd plpgsql/
bash: cd: plpgsql/: Permission denied
Run Code Online (Sandbox Code Playgroud)
我如何访问该文件夹?
虽然所评论的问题有一些解决方案,但这似乎可能与 AUFS 的问题有关。
如果您docker info
报告您的 aufs 驱动程序缺少 dirperm1 支持:
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 148
Dirperm1 Supported: false
Run Code Online (Sandbox Code Playgroud)
...那么您可能需要更新主机上的 aufs,或尝试使用不同的存储驱动程序。当您希望更改权限能够正常工作时,使用 aufs 作为默认存储驱动程序会遇到这种情况,这有点令人沮丧。