Dan*_*hko 11 jenkins docker-compose
我已经建立了一个基于家庭的CI服务器来处理个人项目.下面你可以看到分支"staging"会发生什么.它工作正常,但这种管道配置的问题是:
1)停止实例的唯一方法似乎是中止jenkins中的构建,导致退出代码143并构建标记为红色而不是绿色
2)如果机器重新启动,我必须手动触发构建
3)我想应该有更好的方法来处理这个问题?
谢谢
stage('Staging') {
when {
branch 'staging'
}
environment {
NODE_ENV = 'production'
}
steps {
sh 'docker-compose -f docker-compose/staging.yml build'
sh 'docker-compose -f docker-compose/staging.yml up --abort-on-container-exit'
}
post {
always {
sh 'docker-compose -f docker-compose/staging.yml rm -f -s'
sh 'docker-compose -f docker-compose/staging.yml down --rmi local --remove-orphans'
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么,这里的目标是什么?您是否正在尝试部署到暂存区?如果是这样,你这是什么意思?如果 jenkins 要启动一个长时间运行的进程(例如运行 Web 服务器的 docker 容器),那么 shell 命令行必须能够启动,然后让其退出状态告诉 jenkins 管道启动是否成功。
一种选择是将 docker compose 包装在一个脚本中,该脚本执行、检查并使用适当的退出代码退出。另一种是使用另一种自动化工具来帮助(例如ansible)
第一个问题仍然是,您想让詹金斯做什么以及如何在命令行上工作。如果您可以对命令行进行建模,那么您可以封装在脚本文件中并让 jenkins 启动它。
Jenkins 管道代码看起来像 groovy,也很像 groovy。这可以让我们相信,向管道添加复杂的逻辑是一个好主意,但这将 jenkins 变成了我们的 IDE,并且很难调试,并且是我多次陷入的陷阱。
一种更简单的方法是使用其他一些工具可以轻松地在命令行上进行测试,然后让 jenkins 构建运行该命令行进程的环境。Jenkins 处理它擅长的事情:
| 归档时间: |
|
| 查看次数: |
1989 次 |
| 最近记录: |