web-dev-qa-db-ja.com

Docker:ADDで追加されたフォルダーでアクセスが拒否されました

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

/ dbフォルダーにはアクセスできますが、/ db/plpgsql(/db/all.sqlによって実行されるファイルが含まれています)にはアクセスできません。

/ db/plpgsqlでchmod777を試しましたが、どちらも機能せず、権限が拒否されました。

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

そのフォルダにアクセスするにはどうすればよいですか?

7
Carl Levasseur

コメント付きの問題 にはある程度の解決策がありましたが、これは AUFSの問題 に関連しているようです。

もしあなたの docker infoaufsドライバーにdirperm1サポートがないことを報告します。

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

...次に、ホストのaufsを更新するか、別のストレージドライバーを使用してみてください。デフォルトのストレージドライバーとしてaufsを使用してこれに遭遇するのはややイライラしますが、アクセス許可を変更することは、正しく機能することを期待するものです。

1
ferrouswheel