我最近一直在使用 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 容器!)。
我做了以下事情:
我的错误是直接使用 BlueOcean 而没有真正了解构建在 Jenkins 中的工作方式。 BlueOcean 不允许与 ssh-agent 集成。您必须添加:
sshagent (credentials: ['deploy-dev']) {
sh 'ssh -o StrictHostKeyChecking=no -l cloudbees 192.168.1.106 uname -a'
}
到您的构建正在使用的 Jenkinsfile。
我希望这对遇到同样问题的其他人有所帮助。
关于docker - 使用 Jenkins Blue Ocean 部署构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43772920/