Измените владельца файла при копировании ресурсов с помощью TestContainersJAVA

Программисты JAVA общаются здесь
Anonymous
Измените владельца файла при копировании ресурсов с помощью TestContainers

Сообщение Anonymous »

Я использую TestContainers в тестах на Java. Чтобы настроить приложение в контейнере, мне нужно поместить и установить файлы конфигурации: некоторые файлы статичны, поэтому я монтаж их с помощью classpathresourcemapping при создании нового контейнера:

Код: Выделить всё

container.withClassPathResourceMapping(
"/path/to/res",
"/etc/app/config.name",
BindMode.READ_ONLY
)
Другие файлы генерируются динамически и могут быть переопределены приложением в контейнере, поэтому я копирую контент в контейнер с помощью copyfiletocontainer после начала контейнера:

Код: Выделить всё

container.copyFileToContainer(
Transferable.of(bin /* byte[] */),
"/var/app/resource.name"
)
Приложение работает в контейнере как приложение: app Пользователь и группа, которые определены в Dockerfile .
И у меня есть две похожие проблемы здесь: < /p>
  • Код: Выделить всё

    withClassPathResourceMapping
    Операция создает пропущенный каталог, если не найдена, например, Отображение класса SpayPath для "/etc/app/config.name" creates "/etc/app/ каталог. Но он создает эти каталоги как root: root Пользователь, поэтому приложение не может Создайте новые файлы в этом каталоге позже CopyFileToContainer создает файлы как root: root Пользователь, поэтому приложение не может записать в эти файлы.
Я пытался выполнить Chown -r/path после начала контейнера, но эта команда не выполняется, поскольку пользователь EXEC не является root .
Какой правильный способ настройки владельца и разрешения в TestContainers?

Подробнее здесь: https://stackoverflow.com/questions/678 ... containers

Вернуться в «JAVA»