如何配置jenkins在远程计算机上执行docker命令?

时间:2019-06-07 05:14:08

标签: docker jenkins

我们有一个Jenkins主服务器,我们也在其中安装了docker。另外,我们还有其他3个安装了docker的远程虚拟机,

我们在詹金斯(Jenkins)的要求是做以下事情。

1)Jenkins应该从git中已提交的docker文件创建映像

2)詹金斯(Jenkins)应该将此图像推送到DTR

3)Jenkins应该将这些推送的映像启动到远程vms的容器中。

可能的方法是什么。

如何配置Jenkins在远程vms中运行容器?

2 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点,最合适的方法取决于您的要求。以下内容非常简单,只需在不同的jenkins-agents上执行shell命令即可。

如果这些虚拟机作为代理连接到您的jenkins主服务器,则可以自由签出Dockerfile并在一个代理(或主服务器)上构建,然后切换代理并在那里启动映像。

沿着以下代码行

def image = 'image123:latest'

node('build-vm') {
  stage('Checkout') {
    checkout scm
  }

  stage('Build image') {    
    sh "docker build -t ${name} ."
    [...] 
    sh 'docker push ${name}'
  }
}

node('vm1') {
  stage('Run image on vm1') {
    sh 'docker run -d ${name}'   
  }
}

node('vm2') {
  stage('Run image on vm2') {
    sh 'docker run -d ${name}'   
  }
}

node('vm3') {
  stage('Run image on vm3') {
    sh 'docker run -d ${name}'   
  }
}

答案 1 :(得分:1)

理想情况下,您可以使用Jenkins Kubernetes plugin来在已安装kubectl的任何远程VM Jenkins代理上执行作业。

这允许在Docker构建中使用Docker:来自Building Docker Images inside Kubernetes编写的“ Vadym Martsynovskyy”。

https://cdn-images-1.medium.com/max/1091/1*15NQIPeVcPyZbLq9UCTQgg.png

您还可以使用以下任一选项,在“ Pipelines With Docker Alternatives”中的“ Joost van der Griendt's CI/CD Knowledge Docs!”中进行详细说明,

主要观点是:使用Jenkins构建docker容器通常是在Kubernetes安装上下文中完成的。