Как сохранить право собственности на каталог контейнера, пока он подключен к тому хоста? - PullRequest
0 голосов
/ 05 августа 2020

У меня есть файл Dockerfile, который выглядит следующим образом:

Dockerfile:

RUN mkdir /app/public/documents \
    && chown -R app:app /app \
    && chmod -R 777 /app

USER app

WORKDIR /app 

Вот часть моего файла стека, где я привязываю каталог, создал в Dockerfile каталог в файловой системе хоста:

Файл стека:

volumes:
    - docs:/app/public/documents

Когда я создаю и запускаю образ, разрешение и владение каталогом приложения отображается так, как указано в Dockerfile, т.е. app:app. Однако, когда я развертываю файл стека с помощью команды docker stack deploy, владение каталогом documents в контейнере отличается от того, что я планировал, он должен быть app:app, но требует 1001:1001. Я выяснил, что каталог в контейнере наследует право собственности на каталог, который находится в файловой системе хоста, и 1001 фактически оказывается идентификатором пользователя владельца каталога в файловой системе хоста. Можно ли каким-либо образом предотвратить наследование каталога контейнера директорией хоста при развертывании стека? Может быть, заставить его каким-то образом использовать разрешения и права собственности, определенные в Dockerfile?

...