我们宣布可以使用官方的 Windows agent Docker 镜像了,这些镜像允许在 Docker 和 Kubernetes 上使用 Windows 操作系统配置 Jenkins agent。

1

 新镜像 ? 

现在,所有 agent 的正式 Docker 镜像都提供 nanoserver-1809 和 windowsservercore-1809 标签,其中包括 Windows 镜像以及当前的 Java 8(类似于 latest 标签)。我们还提供了明确的 Java 选择,例如 jdk8-windowsservercore-1809 或 jdk11-nanoserver-1809。版本标记也可用,例如 jenkins/agent:4.3-4-jdk8-nanoserver-1809。

  • jenkins/agent 是一个基础的 agent,它捆绑 agent.jar 来进行 agent<= => master之间的通讯,最有用的是可以作为其他镜像的基础镜像。Windows 镜像从版本 4.3-4 开始可用。
  • jenkins/inbound-agent 是一个基于上面 jenkins/agent 镜像的 agent,它提供了用 PowerShell 编写的包装类脚本,以帮助指定 agent.jar 的参数。Windows 镜像从版本 4.3-4 开始可用。
  • jenkins/ssh-agent 是一个安装了 OpenSSH 的镜像, 应该与 SSH Build Agents Plugin 一起使用。Windows 镜像从版本 2.1.0 开始可用。

2

 使用 Windows Docker镜像 

要使用新镜像,您将需要支持运行 Windows 容器的合适 Docker 或 Kubernetes 环境。

对于 Windows 桌面用户,最简单的方法是使用Docker for Windows。此处记录了 Kubernetes 对于 Windows 的支持。

2.1 Jenkins/agent

jenkins/agent 镜像是 JDK 和 agent.jar(Jenkins Remoting 库)的简单 agent。该镜像有两个主要用途:

  1. 作为其他 Docker 镜像的基础镜像(例如 Dockerfile 中的 FROM jenkins/agent:jdk8-nanoserver-1809),jenkins/inbound-agent 就是基于这个镜像。
  2. 该镜像还可用于通过 Launch agent via execution of command on the master 的 Launch method 启动agent,这允许主服务器自动在 docker 容器内启动 agent。

要针对第二个用途运行 agent,请在设置 Remote root directory 为 C:\Users\jenkins\agent 后,在 Jenkins 主服务器上指定以下命令:

docker run -i --rm --name agent --init jenkins/agent:jdk8-windowsservercore-1809 java -jar C:/ProgramData/Jenkins/agent.jar

2.2 Jenkins/inbound-agent

inbound-agent Docker 镜像尝试提供与 agent.jar 可执行文件的更高级别的交互。它提供了一个围绕 agent.jar 的 PowerShell 包装类脚本,并且被指定为入口点,因此您只需要传递一些命令行参数即可运行 agent。

已打开一个 pull request,其中记录了这些命令行参数和环境变量。

示例:

 docker run jenkins/inbound-agent:windowsservercore-1809 `    -Url http://jenkins-server:port `    -WorkDir=C:/Users/jenkins/Agent `    -Secret  `    -Name 

使用环境变量的示例:

docker run -e "JENKINS_URL=http://jenkins-server:port" -e "JENKINS_AGENT_NAME=AGENTNAME" `    jenkins/inbound-agent:windowsservercore-1809 `    -WorkDir=C:/Users/jenkins/Agent `    -Secret  `    -Name 

注意:-Url、-Name 和 -Secret 是必选参数,但可以将其指定为命令行参数或环境变量。

2.3 Jenkins/ssh-agent

如上所述,jenkins/ssh-agent docker 镜像基于与主机的 SSH 通信,而不是基于远程 TCP 或 WebSocket 协议。该镜像设置了一个 jenkins 用户和 OpenSSH 服务器,以便主服务器可以通过 SSH 连接到 agent。该镜像需要 SSH 公钥作为参数,并将该密钥放入 jenkins 用户的 authorized_keys 文件中,应在主服务器上的 agent 配置中指定私钥,以允许主服务器连接。示例:

 docker run jenkins/ssh-agent:jdk8-windowsservercore-1809 ""

使用 docker run 时,还可以将公钥作为环境变量传递。示例:

 docker run -e "JENKINS_AGENT_SSH_PUBKEY=" jenkins/ssh-agent:jdk8-windowsservercore-1809
然后,将能够作为 “jenkins” 使用 SSH Build Agents Plugin与匹配的私钥连接该 agent。

3

  下一步计划 

我们正在考虑提供基于 Windows Server 2019 build 1909 的版本,以便 Jenkins 用户可以在 GKE 群集上运行这些镜像。

我们还正在研究提供多体系结构清单,以使 Windows 镜像成为 latest 标签的一部分。还有一个开放的 pull-request,用于为 Jenkins 主服务器创建基于 Windows 的 Docker 镜像。对此没有很多要求,但是为了使 Windows 用户的产品完善,创建了这个 pull request。

对于与 Windows 不相关的计划,请参阅 agent 的 Docker镜像:新名称和下一步博客文章。

查看文中链接,请点击阅读原文】

推荐阅读

Jenkins CLI 命令行 v0.0.28

手把手教会你 Jenkins 备份与恢复

CI/CD 哪家强 - 主流开源 CI 工具对比

征集用户故事- Jenkins is the Way

Tekton 流水线发布首个官方 Beta 版本

Jenkins流水线与k8s的持续集成落地分享

Jenkins 设置镜像_Windows Docker Agent 镜像可以常规使用了相关推荐

  1. docker 国内镜像与 docker hub 镜像, docker-compose

    目录 1. docker 国内镜像与 docker hub 镜像, docker-compose 1.1. 通过国内镜像安装 docker 1.1.1. Debian 1.1.2. RHEL 1.2. ...

  2. docker php镜像推荐,Docker 常用镜像整理

    Docker 搭建靶场很方便,但是每次搭建靶场找到底层镜像都会消耗不少时间,所以特此花时间写下本文,磨刀不误砍柴工,后面再搭建 Docker 靶场的话,效率就会高很多了. PHP PHP 环境,如果不 ...

  3. Docker:镜像操作和容器操作

    镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6b ...

  4. Docker - 应用镜像

    概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会 ...

  5. (五)Docker镜像管理1之镜像操作

    这篇文章将介绍镜像的一般操作,包括查看.查找.下载.删除等. 下载镜像 使用下面的命令来下载镜像 1 docker pull 镜像名称或者镜像名称:标签 1 2 #如果不加标签则表示最新的 docke ...

  6. 【阿里云镜像】使用阿里云Docker CE 镜像安装Docker

    文章目录 一.参考链接 二.Docker CE简介 三.使用阿里云Docker CE镜像安装Docker 1.SSH连接CentOS 7系统 2.基于CentOS 7安装配置Docker(使用 yum ...

  7. Docker 启动镜像

    一.查看当前docker中下载的镜像,如下图,当前我的Docker容器中存在两个镜像 ,tomcat.mysql 二.启动镜像 (因启动命令参数过多,同时各种镜像启动时可以增加额外的参数,本次以启动m ...

  8. Docker怎么样拉取镜像?怎样删除镜像?

    今天的Java培训,我们讲解一下Docker拉取镜像的方式.我们拉取镜像默认是从 Docker Hub 镜像仓库上进行获取的,在 Docker Hub 的官网 Docker Hub   上我们可以查看 ...

  9. docker拉镜像、创建容器、停止容器、移除容器、构建镜像

    导语:最近发现好多面试者不会docker,虽然不是开发必备,但是偶尔会弄个demo,或者解析个什么自己搭建项目也很方便,以我微薄的docker经验在这里留下记录并供自己以后巩固 以下内容可学会dock ...

最新文章

  1. 关于鼠标、键盘的几个例子
  2. dp背包九讲(待补充,暂时前两讲)
  3. 如何获取NumPy数组中N个最大值的索引?
  4. mysql 查询任务_mysql中怎样显示服务器正在执行的sql任务
  5. spoj453 Sums in a Triangle (tutorial) 动态规划
  6. 英雄传说服务器维护中,英雄传说:星之轨迹 正统《轨迹》手游无法连接服务器是什么原因...
  7. 494. 目标和 golang 动态规划
  8. Nginx:Nginx limit_req limit_conn限速
  9. 敏捷软件开发 12 原则
  10. 架构师,是否需要写代码?
  11. python 获取窗口句柄_Python如何自动化哄女朋友
  12. 用Python画一个时钟---简易版
  13. (一)GPS与基站定位
  14. 计算机操作系统(第四版)课后习题答案(完整版)
  15. 数据结构-顺序表基本操作-C语言代码
  16. 如何把Tomcat 9 的默认8080端口变成80端口
  17. steam网络相关问题-社区错误代码118/无法自动登陆/短期内来自您网络的失败登录过多/无法连接至steam网络(2021/2/18更新)
  18. vue实现动态二维码完成签到功能
  19. 使用IntelliJ Idea新建SpringBoot项目
  20. python鞋子_Micropython 鞋码匹配仪(标题图与内容无关)

热门文章

  1. 如何读论文?-如何写好科技论文之我见(八)
  2. CODEVS-1758-维护数列-NOI2005-splay
  3. TextVQA论文汇总
  4. 体育场[带权并查集]
  5. c语言测试1到3章,2013计算机等级考试二级《C语言》复习:第三章第1节
  6. git 清空log_[译] 我个人的 Git 技巧备忘录
  7. linux+离线+搜狗,Ubuntu离线安装Sogou拼音(附老版本安装)
  8. matlab中服从高斯分布的矩阵_推荐基础算法之矩阵分解PMF
  9. python输出日期语句_python输出语句怎么用
  10. cas 连接oracle,Oracle 生成系统数据导入测试系统及smarteam 连接更改