Docker:在添加了ADD的文件夹上拒绝权限

我正在尝试使用dockerconfigurationpostgresql安装。

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 

我可以访问文件夹/ 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 

我如何访问该文件夹?

虽然在评论的问题上有一些解决办法,但似乎这可能与AUFS的问题有关。

如果你的docker docker info报告你的aufs驱动缺lessdirperm1支持:

 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 148 Dirperm1 Supported: false 

…那么你可能需要更新主机上的aufs,或尝试使用不同的存储驱动程序。 用aufs作为默认的存储驱动程序来解决这个问题有点令人沮丧,当改变权限的时候,你只是希望能正常工作。