Docker - право собственности теряется после монтирования одного файла - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь привыкнуть к Docker, и теперь я наткнулся на деликатную проблему, которую я пока не смог решить.

(я работаю в Windows 10, но та же проблема относится к Debian)

Я хотел бы запустить мою точку входа в контейнеры как не-root, которая уже работает. Тем не менее, я хотел бы иметь файл, в котором я уже установил разрешения, которые требуются моему приложению (user: usergrp и chmod 600), например так:

 touch /app/application.properties && \
 chown user:usergrp /app/application.properties && \
 chmod 600 /app/application.properties

Это действительно работает. Если я просто запускаю контейнер без каких-либо монтировок, я вижу, что он правильно настроен:

-rw-------    1 user usergrp         0 Jan  6 18:32 application.properties

Однако, когда я перезаписываю файл с помощью одного монтирования файла, владелец меняется на root: root . Напротив, разрешения остаются 600.

Моя путаница связана с тем, что монтирование тома и монтирование одного файла здесь работают по-разному. В моем Dockerfile у меня также есть каталог, который переопределяется монтированием, и он сохраняет права собственности и права доступа .

Как я могу добиться того, чтобы право владения сохранялось для монтирования одного файла, или я должен решить его по-другому?

Заранее спасибо!

1 Ответ

0 голосов
/ 07 января 2019

Я попытался воспроизвести эту проблему и обнаружил, что некоторые комбинации команд приведут к тому, что файл станет корневым, например --mount source=test.properties,target=/app/test.properties.

Попробуйте этот способ сохранить права собственности и разрешения для одного файла. Эта комбинация команд отлично работает на моей машине.

--mount type=bind,source="$(pwd)"/test.properties,target=/app/test.properties
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...