我最近一直在使用 Docker 和 Jenkins 设置我自己的小型 CI/CD 设置。我已经为 Jenkins 安装了新的 Blue Ocean 插件并设置了一个管道:从 Git 拉取 -> 运行测试 -> 构建。效果很好。

但是,我无法找到如何在管道中创建适当的部署/发布步骤。构建后,我希望 Jenkins 容器通过 SSH 连接到运行所有 Docker 容器的 VPS,拉取然后重新构建该特定容器(使用 Docker Compose)。

我注意到在 Blue Ocean 中可以选择输入一个在测试/构建后运行的 bash 脚本——这是我应该使用的吗?

我一直在考虑为 Jenkins 使用 Publish over SSH 插件,但我无法找到该插件是否适用于 Blue Ocean,也无法找到如何为要使用的 Jenkins 容器创建 ssh key 。

对于我应该如何发布/构建更新的容器的任何见解/建议,我将不胜感激。

请您参考如下方法:

终于让它工作了!是的,解决方案是使用 Jenkins 的“ssh-agent”插件(适用于 Jenkins Docker 容器!)。

我做了以下事情:

  • 只是在我的本地机器上创建了一个 ssh key 对 (ssh-keygen)
  • 将 id_rsa 复制粘贴到 ssh-agent 插件
  • 将 id_rsa.pub 复制到我想在
  • 上运行构建/发布脚本的机器上

    我的错误是直接使用 BlueOcean 而没有真正了解构建在 Jenkins 中的工作方式。 BlueOcean 不允许与 ssh-agent 集成。您必须添加:
    sshagent (credentials: ['deploy-dev']) { 
        sh 'ssh -o StrictHostKeyChecking=no -l cloudbees 192.168.1.106 uname -a' 
    } 
    

    到您的构建正在使用的 Jenkinsfile。

    我希望这对遇到同样问题的其他人有所帮助。


    评论关闭
    IT序号网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!