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

在Jenkins中创建Docker映像并作为服务运行,docker,jenkins,Docker,Jenkins,我有一个JSP网站。我正在建造DevOps管道。我正在寻求帮助,以整合Jenkins与Docker 我已经有了docker文件,它执行将war文件部署到tomcat服务器的任务。 (命令1) 通过命令行,我可以运行docker文件并创建一个图像 我可以运行创建的图像作为服务,并能够浏览网站。 (命令2) 我想在詹金斯做这两个步骤。我需要您的帮助在Jenkins中集成这两个命令,这样我就不需要逐个手动运行这两个命令。我认为您可以使用 对于第一个命令,您可以有一个运行以下操作的阶段: myImage

我有一个JSP网站。我正在建造DevOps管道。我正在寻求帮助,以整合Jenkins与Docker

  • 我已经有了docker文件,它执行将war文件部署到tomcat服务器的任务。 (命令1)
  • 通过命令行,我可以运行docker文件并创建一个图像
  • 我可以运行创建的图像作为服务,并能够浏览网站。 (命令2)

  • 我想在詹金斯做这两个步骤。我需要您的帮助在Jenkins中集成这两个命令,这样我就不需要逐个手动运行这两个命令。

    我认为您可以使用

    对于第一个命令,您可以有一个运行以下操作的阶段:

    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.*
    方法,则必须在
    脚本
    步骤或函数中执行

    (更多信息请参阅)


    对于第二个命令,您只需更新服务器中正在运行的映像。要做到这一点,你有很多选择(
    docker service update
    ,例如,如果你使用docker Swarm),我认为这部分超出了本文的范围

    这不是一个真正的话题。也许对其他用户的研究表明你的问题质量低下,需要改进。我对您的输入进行了重新措辞/格式化,使其更易于阅读/理解。请查看我的更改,以确保它们反映您的意图。但我认为你的问题仍然无法回答。你现在应该回答你的问题,包括你自己的努力(参见)。如果您有进一步的问题或反馈,请随时给我留言。