小编Jor*_*rdi的帖子

在非root用户作为Jenkinsfile代理的情况下在Docker容器中使用docker命令(以托管)

作为构建管道的一部分,我有一个包含构建工具的容器,该容器用于多个项目。我的项目之一包含构建步骤,以构建和发布容器,该步骤是从build-tools容器内完成的。我的启用了docker的jenkins-slaves配置为具有jenkinsgroup中的用户docker。我使用-v挂载docker二进制文件和scoket。可以通过以下任一方式实现/复制:

  • 在构建工具的Dockerfile中添加用户(jenkins)和组(docker),并将其设置为主机UID和GID
  • 使用-u选项启动容器,提供UID和GUID(根据文档,容器中不需要存在用户和组)。

第一种策略的问题在于,在多个构建计算机上,用户名和组ID是不同的。我可以通过将所有构建机器的UID和GID更改为相同的值来解决此问题,但是docker是否不是要在没有对环境/上下文有很多依赖性的情况下独立运行的?这感觉不适合我。第二种策略在命令行上可以很好地工作,但是,似乎没有办法将UID和GID传递给Jenkinsfile中的agent命令。该args参数不支持脚本或变量,如$(id -u)

我本来不是第一个遇到此问题的人,但是,我自己,搜索机器和堆栈溢出都无法找到解决方案。我应该选择“准备好的”构建奴隶,还是有办法使第二种策略起作用?

-edit-我了解以root身份运行容器并在启动后进行切换的选项(例如,使用入口点)。但是,这将需要我的Jenkins奴隶以root身份连接,这对我来说是不可接受的。另一个找到的替代方法是所有资源的chmod777,这完全不保证不以root用户身份运行Jenkins从站的安全性。我更愿意对容器使用-u选项,但是在从Jenkinsfile中启动docker agent(docker run命令)之前,我找不到在jenkins从属服务器上确定UID和GID 的方法。

permissions jenkins docker jenkins-pipeline

6
推荐指数
1
解决办法
122
查看次数

从命令行更改perforce工作空间视图映射

我搜索了互联网和perforce帮助页面,但找不到我的问题的解决方案.

在脚本中,在命令行上,我想更改我的工作区视图.例如:

// depot/some/branch/myfolder/mysubfolder/.../home/myuser/perforce/branch/myfolder/myworkspace/... to // depot/some/branch/.../home/myuser/perforce /科/...

我无法弄清楚要使用的命令.你能帮我吗?

workspace perforce

4
推荐指数
1
解决办法
2789
查看次数