首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何使用jnlp/jnlp/jnlp-从jnlp到jnlp/jnlp-从jnlp-从jnlp到jnlp-从jnlp到jnlp-从服务器(通过代理名)

我如何使用jnlp/jnlp/jnlp-从jnlp到jnlp/jnlp-从jnlp-从jnlp到jnlp-从jnlp到jnlp-从服务器(通过代理名)
EN

Stack Overflow用户
提问于 2019-08-06 13:20:47
回答 1查看 1.5K关注 0票数 2

我有一群三个节点(一个经理,两个工人)。在我的群中,我正在运行一个安装了坞群插件(https://github.com/jenkinsci/docker-swarm-plugin)的jenkins服务。我想使用这个插件在我的群中为每个jenkins作业创建一个构建代理容器。对于代理,我想使用jenkins/jnlp-从坞映像(https://hub.docker.com/r/jenkinsci/jnlp-slave/)。该图像需要两个参数作为开头:

  1. 秘密(可以通过JENKINS_SECRET环境变量设置)
  2. 代理名称(可以通过JENKINS_AGENT_NAME环境变量设置)

停靠群插件创建了三个环境变量:

  1. $DOCKER_SWARM_PLUGIN_JENKINS_AGENT_SECRET (我用它来设置秘密)
  2. $DOCKER_SWARM_PLUGIN_JENKINS_AGENT_JAR_URL
  3. $DOCKER_SWARM_PLUGIN_JENKINS_AGENT_JNLP_URL (这包含代理名称)

我通过JENKINS_SECRET环境变量(在Jenkins插件配置的ENV部分)将秘密传递给代理:

代码语言:javascript
复制
JENKINS_SECRET=$DOCKER_SWARM_PLUGIN_JENKINS_AGENT_SECRET

我试图通过使用正则表达式传递代理名称(也在Jenkins插件配置的ENV部分):

代码语言:javascript
复制
JENKINS_AGENT_NAME=`echo $DOCKER_SWARM_PLUGIN_JENKINS_AGENT_JNLP_URL | sed ...`

但是没有执行该命令(据我了解,这是出于安全原因,以避免代码注入)。

我想达到什么目标:我想在我的码头群上运行jenkins,我希望jenkins在一个构建代理容器中运行每个作业,这个容器在作业完成后丢弃。我希望构建代理容器在集群中传播(jenkins docker-plugin在jenkins主程序运行的节点上启动它们)。我知道对接者群插件应该做我想做的事情。我认为jenkins/jnlp-从映像就像我想要使用的那样构建代理容器。但我找不到办法让他们一起工作。

有人能给我一些建议吗?我是否应该使用另一个能更好地使用插件的图片呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-28 12:35:30

我打开了这个插件的https://github.com/jenkinsci/docker-swarm-plugin/issues/37,现在用PR https://github.com/jenkinsci/docker-swarm-plugin/pull/39添加了一个新的环境变量,并添加了创建的代理名称。这可以传递到码头形象和一切运作良好!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57377058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档