代码之家  ›  专栏  ›  技术社区  ›  gunit

在Jenkins slave节点上运行的Jenkinsfile中执行docker build命令的最简单方法?

  •  7
  • gunit  · 技术社区  · 7 年前

    我希望Jenkinsfile执行的基本示例:

    node {
       sh 'docker build -t foo/bar .'
    }
    

    似乎我需要将docker安装到正在执行我的Jenkins文件的Jenkins slave映像上。有没有简单的方法?(Jenkins slave图像本身就是一个docker容器)

    1. 通过管理插件部分安装的Jenkins插件(例如Docker插件或Gcloud SDK插件)仅安装在Jenkins masters上,因此我需要手动构建我的Jenkins slave Docker镜像并在镜像上安装Docker?

    gcr.io/cloud-solutions-images/jenkins-k8s-slave 我的詹金斯奴隶形象。

    1 回复  |  直到 7 年前
        1
  •  7
  •   Community CDub    4 年前

    我的假设是你想 docker build Kubernetes Jenkins Plugin

    为了设置阶段,当Kubernetes创建将作为Jenkins从属的pod时,您在节点内执行的所有命令都将在Kubernetes pod内执行,在其中一个容器内执行(默认情况下,只有一个容器,但稍后会有更多)。

    gcr.io/cloud-solutions-images/jenkins-k8s-slave ,这很可能是基于 the official Jenkins JNLP Slave 哪不集装箱码头工人!

    从这一点开始,您可以采取两种方法:

    以下是如何配置Jenkins插件的完整视图:

    enter image description here

    请注意,您使用了不同的图像(您可以创建自己的图像并在其中添加任何需要的二进制文件),并且您将Docker套接字安装在容器内。

    • 使用第二种方法,你总是使用官方图片,而你 使用JNLP从机启动同一pod中的其他容器。

    Here is the full file from the image below

    Here is the Jenkins Plugin documentation for doing this

    enter image description here

    这是我发现的两种在容器内运行的Jenkins JNLP从机内构建图像的方法。

    更多资源:

    谢谢 拉杜姆