如何在 Docker 容器中运行整个 Jenkins 管道,从头到尾?
·
问题:如何在 Docker 容器中运行整个 Jenkins 管道,从头到尾?
有没有办法定义整个管道阶段和步骤可以运行的容器,从开始到结束,而不必在每次要运行阶段时启动容器?
这样做的原因是我正在运行_terraform_,这需要在运行部署之前执行一组步骤(初始化、计划、应用)。当然,可以单独运行每个阶段并调用 docker 每次运行一个容器,但这会违反直觉。除非您将terraform plan
输出保存为工件,否则数据将会丢失,例如......这就像用右手在头周围抓挠左耳一样。
我想在顶部运行容器,然后在里面构建每个阶段,而不是杀死它。
解答
您可以在 Jenkinsfile 顶层的代理部分中定义您的 docker 容器:
pipeline {
agent {
docker {
image 'terraform-image'
}
}
stages {
....
}
}
每个阶段都将在同一个 docker 容器中运行,并且您不会在每个阶段之间丢失工作区。
更多推荐
所有评论(0)