在Jenkins中创建Docker映像并作为服务运行

时间:2018-10-25 15:47:21

标签: docker jenkins

我有一个JSP网站。我正在构建DevOps管道。我正在寻找将Jenkins与Docker集成的帮助。

  1. 我已经有了docker文件,该文件负责将war文件部署到tomcat服务器。 (Command1)
  2. 通过命令行,我可以运行docker文件并创建映像。
  3. 我可以将创建的图像作为服务运行,并能够浏览网站。 (Command2)

我想在詹金斯做这两个步骤。我需要您的帮助,以将这两个命令集成到Jenkins中,这样我就不必一个接一个地手动运行这两个命令。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用"Docker Pipeline Plugin"

对于第一个命令,您可以运行一个阶段:

myImage = docker.build("my-image:my-tag")

如果需要,您可以进入另一个阶段,可以使用以下命令在图像中运行一些测试:

myImage.inside {
  sh './run-test.sh'
}

最后,您可以使用以下方法将映像推送到存储库中:

docker.withRegistry('https://your-registry.com', 'credentials_id') { //use a second parameter if you repository requires authentication
    myImage.push('new_tag') //You can push it with a new tag
}

请注意,如果要在声明性管道中使用docker.*方法,则必须在script步骤内或函数中进行操作。

plugin's user guide中的更多信息)

对于第二条命令,您只需要更新服务器中的运行映像。为此,您有很多选择(例如,如果使用的是Docker Swarm,则docker service update),我认为这部分不在本文讨论范围之内。