Управление учетной записью пользователя с помощью Docker - PullRequest
0 голосов
/ 22 ноября 2018

Мне нравится, как Docker управляет томом, портом и сетью.

Но я обнаружил, что в Docker отсутствует что-то для правильного управления пользователем (отсюда и разрешение на файл / том).

Использованиеcase:

"с GitlabCI, запускается от имени пользователя gitlab, мы используем образ Docker gradle для создания приложения"

(https://hub.docker.com/_/gradle/которые правильно объявляют пользователя gradle).

Это изображение создает файлы jar, принадлежащие пользователю gradle, поэтому пользователь gitlab не может очистить эти файлы => нарушить GitlabCI.

Если я запускаю Docker с --user=$UID, файлывсе в порядке, но поскольку gitlab не является допустимым пользователем в образе Gradle Docker, некоторые модульные тесты Java не пройдены (средства безопасности Java).

Моим решением было создать пользователя в образе Docker:

#!/bin/sh

BUILD_CMD="gradle build"

set -eux

if test -n "$USER_UID" && test -n "$USER_NAME"; then
    adduser --uid $USER_UID --quiet --home /home/gradle --disabled-password --gecos "djobi" $USER_NAME
    exec su -c "$BUILD_CMD" $USER_NAME
else
    exec $BUILD_CMD
fi

Это работает нормально, мне интересно, есть ли лучшее решение, более глобальное, чтобы повлиять на ВСЕ работающие контейнеры моего docker-compose.yml?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...