Я пытаюсь привыкнуть к 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 у меня также есть каталог, который переопределяется монтированием, и он сохраняет права собственности и права доступа .
Как я могу добиться того, чтобы право владения сохранялось для монтирования одного файла, или я должен решить его по-другому?
Заранее спасибо!