![](/img/trans.png)
[英]Jenkins Kubernetes plugin failing to provision jnlp-slave pods
[英]How can I user docker image jenkins/jnlp-slave with Jenkins docker-swarm-plugin (pass agent name)
我有一群三个节点(一个经理,两个工人)。 在我的 swarm 中,我正在运行一个安装了 docker-swarm-plugin ( https://github.com/jenkinsci/docker-swarm-plugin ) 的 jenkins 服务。 我想使用该插件在我的 swarm 中为每个 jenkins 工作创建一个构建代理容器。 对于代理,我想使用 jenkins/jnlp-slave docker 映像 ( https://hub.docker.com/r/jenkinsci/jnlp-slave/ )。 该图像需要两个开始参数:
docker-swarm-plugin 创建了三个环境变量:
我通过 JENKINS_SECRET 环境变量(在 Jenkins 插件配置的 ENV 部分)将秘密传递给代理:
JENKINS_SECRET=$DOCKER_SWARM_PLUGIN_JENKINS_AGENT_SECRET
我尝试使用正则表达式(也在 Jenkins 插件配置的 ENV 部分)传递代理名称:
JENKINS_AGENT_NAME=`echo $DOCKER_SWARM_PLUGIN_JENKINS_AGENT_JNLP_URL | sed ...`
但是命令没有执行(我理解这是出于安全原因以避免代码注入)。
我想达到什么目标:我想在我的 docker swarm 上运行 jenkins,我希望 jenkins 在自己的构建代理容器中运行每个作业,该容器在作业完成后被删除。 我希望构建代理容器在整个集群中传播(jenkins docker-plugin 在 jenkins master 运行的节点上启动它们)。 我明白 docker-swarm-plugin 应该做我想做的。 我认为 jenkins/jnlp-slave 映像可以用来构建我想要使用的代理容器。 但我找不到如何让它们一起工作的解决方案。
谁能给我一些建议? 我应该使用另一个与插件配合得更好的图像吗?
我为此在 docker-swarm-plugin 上打开了问题https://github.com/jenkinsci/docker-swarm-plugin/issues/37 ,现在使用 PR https://github.com/jenkinsci/docker-swarm-plugin/ pull/39一个新的环境变量被添加到创建的代理名称中。 这可以传递给 docker 镜像,一切正常!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.