Jenkins: 在 Docker 从机上运行 Docker 命令

6
我正在使用Kubernetes Jenkins插件来编排Jenkins从机。
我希望在Docker中运行所有作业(构建Docker镜像并在Docker中执行测试/构建)。
示例Jenkins作业:
docker run -e NEXUS_USERNAME=${NEXUS_USERNAME} -e NEXUS_PASSWORD=${NEXUS_PASSWORD} common-dropwizard:latest mvn deploy

我正在使用这里的jenkinsci/jnlp-slave:https://hub.docker.com/r/jenkinsci/jnlp-slave/

不幸的是,该从属映像似乎不支持运行docker。我的问题是如何最好地解决这个问题?

谢谢

1个回答

4

DinD 可能不是必需的... 通过 -v /var/run/docker.sock:/var/run/docker.sock 挂载套接字可以很好地工作。请注意,您可能需要传递 --privileged=true 标志。 - phil swenson
我也尝试运行docker命令,但是映射docker.sock和设置privileged true并没有起作用。我尝试在jenkins仪表板中配置pod,还使用了pipeline podTemplate函数。我的JenkinsFile部分代码(https://gist.github.com/otaviosoares/fc132dcb863e75161431ed00b95f06ba)我使用的镜像基于jenkinsci/jnlp-slave,并安装了git和docker。我得到的错误是“docker: not found”。我做错了什么吗?谢谢 - otaviosoares
然后 Docker 不在 PATH 中或类似的情况。 - csanchez
1
我找出问题所在了。我没有将我的容器名称设置为jnlp,因此它在pod内创建了另一个容器。谢谢。 - otaviosoares

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接