Я пытаюсь настроить установку 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)
Я пробовал chmod 777 на / db / plpgsql, но он тоже не работает, в разрешении отказано.
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 info
сообщает, что в вашем драйвере aufs отсутствует поддержка dirperm1:
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 148
Dirperm1 Supported: false
... тогда вам может потребоваться обновить aufs на вашем хосте или попробовать использовать другой драйвер хранилища. Несколько неприятно столкнуться с этим с aufs в качестве драйвера хранилища по умолчанию, когда изменение разрешений - это то, что вы просто ожидаете, чтобы работать правильно.