Docker: Berechtigung für mit ADD hinzugefügte Ordner verweigert

7

Ich versuche, eine Postgresql-Installation mit Docker zu konfigurieren.

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

Ich kann auf den Ordner / db zugreifen, aber nicht auf / db / plpgsql (der Dateien enthält, die von /db/all.sql ausgeführt werden).

Ich habe versucht, chmod 777 auf / db / plpgsql, aber es funktioniert auch nicht, die Berechtigung wird verweigert.

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

Wie greife ich auf diesen Ordner zu?

Carl Levasseur
quelle
Möglicherweise müssen Selinux-Berechtigungen angewendet werden. Wenn dies der Fall ist, sollten Sie mit ls -Z zumindest Folgendes
Mary
Ich habe ein Problem im Docker-Repo unter github.com/docker/docker/issues/6972 gemeldet , das durch diese Pull-Anfrage mehr oder weniger behoben wurde: github.com/docker/docker/pull/9467
Carl Levasseur
Oh mein. Diese Möglichkeit kam mir nicht in den Sinn.
Mary

Antworten:

1

Das kommentierte Problem enthielt zwar eine Lösung , es scheint jedoch, dass dies mit einem Problem mit AUFS zusammenhängt .

Wenn in Ihren docker infoBerichten Ihrem aufs-Treiber die Unterstützung für dirperm1 fehlt:

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

... dann müssen Sie möglicherweise die aufs auf Ihrem Host aktualisieren oder versuchen, einen anderen Speichertreiber zu verwenden. Es ist etwas frustrierend, mit aufs als Standardspeichertreiber darauf zu stoßen, wenn das Ändern von Berechtigungen etwas ist, von dem man nur erwarten würde, dass es richtig funktioniert.

Eisenrad
quelle