У меня есть файл 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?