Я хочу, чтобы пользователь без прав доступа Docker мог писать на постоянный том?Как я могу это исправить? - PullRequest
0 голосов
/ 12 февраля 2019

Я настраиваю игровое пространство для запуска Apache Airflow.Я хочу, чтобы каталог / airflow был владельцем и, следовательно, записываемым пользователем Airflow.Мой Dockerfile выглядит так:

FROM salimfadhley/testpython:latest AS base_python
COPY . /project
WORKDIR /project/src
RUN SLUGIFY_USES_TEXT_UNIDECODE=yes python -m pip install -e /project/src

FROM base_python AS application
ENV AIRFLOW_HOME=/airflow
RUN useradd -G sudo -u 1000 airflow
VOLUME /airflow
WORKDIR /airflow
RUN chown airflow:airflow /airflow
USER airflow

К сожалению, когда я пытаюсь записать в этот каталог, я получаю сообщение об ошибке:

airflow@fc047510b631:/airflow$ touch hello
touch: cannot touch 'hello': Permission denied
airflow@fc047510b631:/airflow$ cd ..
airflow@fc047510b631:/$ ls -l | grep airflow
drwxr-xr-x   2 root    root 4096 Feb 12 13:38 airflow
drwxr-xr-x   6 airflow sudo 4096 Feb 12 13:35 project
drwxr-xr-x   4 airflow sudo 4096 Feb 12 11:12 src

Есть ли способ исправить это, чтобы каталог/ airflow в контейнере - это постоянный том, который принадлежит и поэтому доступен для записи пользователю «airflow».

Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2019

Тома монтируются с помощью uid / gid вместе с правами доступа к файлу источника тома.Если это монтирование хоста, необходимо изменить uid / gid и разрешения для вашего хост-каталога.Если это именованный том, вам нужно изменить разрешения внутри этого именованного тома.

Что вы получите от исправления разрешений в вашем образе, как вы это сделали в Dockerfile, это make новые именованные тома появляются с правильными разрешениями.Docker инициализирует пустой именованный том с содержимым вашего изображения, включая владение файлом и разрешения.Однако после инициализации этого именованного тома с содержимым дальнейшее использование этого именованного тома пропустит этап инициализации, и вы увидите файлы и разрешения предыдущего использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...