Sid*_*Sid 5 tomcat maven jenkins docker devops
我正在尝试使用 docker-maven 插件构建 docker 映像,并计划使用 jenkins 执行 mvn 命令。我将 jenkins.war 部署在 tomcat 实例上,而不是作为非 root 用户运行的独立应用程序。问题是 docker 需要以 root 用户身份运行,因此 maven 命令需要以 root 用户身份运行,因此 jenkins/tomcat 需要以 root 用户身份运行,这不是一个好的做法(尽管我的非 root 用户是也是 sudoer 所以我想不会太重要)。
所以底线,我看到两种解决方案:要么以非root用户身份运行docker(并且需要如何执行此操作的帮助),要么需要以root身份运行jenkins(并且不确定如何实现这一点,因为我更改了环境变量 /config 和仍然没有切换到root)。
对于选择哪种解决方案以及如何实施有什么建议吗?
\n\n\n问题是docker需要以root用户运行,所以maven命令需要以root用户运行,
\n
-u不,可以使用( --user) 参数来完成 docker run ,以便在容器内使用非 root 用户。
\n\n\n以非 root 用户身份运行 docker
\n
您的用户(在主机上)需要属于该docker组。然后您可以使用该用户运行 docker 服务。
正如评论所述,这不是很安全。
\n参见:
最后一个链接以以下发现结束:
\n\n\n\n\n\n
\n- 如果容器内的进程正在执行的\xe2\x80\x99s是一个已知的uid,那么它可能就像限制对主机系统的访问一样简单,以便容器中的uid具有有限的访问权限。
\n- 更好的解决方案是使用已知的 uid 启动容器
\n--user(您也可以使用用户名,但请记住,它\xe2\x80\x99s 只是从主机\xe2\x80\x99s 用户名系统提供 uid 的更友好方式),然后限制对您\xe2\x80\x99决定容器将运行的主机上的 uid 的访问.- 由于 uid 和用户名(以及 gid 和组名)从容器映射到主机的方式,指定容器化进程运行的用户可能会使该进程看起来由容器内部和外部的不同用户拥有。
\n
关于最后一点,您现在拥有用户命名空间(userns)重新映射(从 docker 1.10 开始,但我建议使用 17.06,因为问题 33844)。
\n| 归档时间: |
|
| 查看次数: |
4649 次 |
| 最近记录: |