使用Docker管理用户帐户

时间:2018-11-22 18:05:48

标签: docker

我喜欢Docker如何管理卷,端口和网络。

但是我发现Docker缺少一些可以正确管理用户的内容(因此具有文件/卷权限)。

用例:

  

”和GitlabCI,以用户gitlab的身份运行,我们使用gradle Docker映像来   构建应用程序”

({https://hub.docker.com/_/gradle/,可以正确声明用户gradle)。

此图像将创建gradle用户拥有的jar文件,因此用户gitlab无法清除这些文件=>破坏GitlabCI。

如果我使用--user=$UID运行Docker,文件就可以了,但是由于gitlab在Docker gradle映像中不是有效用户,因此某些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的所有正在运行的容器?

0 个答案:

没有答案