les*_*ess 9 jenkins docker docker-compose
我们想尝试使用 Jenkins 为我们的项目设置 CI/CD。该项目本身使用 Elasticsearch 和 PostgreSQL 作为运行时依赖项,并使用 Webdriver 进行验收测试。在开发环境中,一切都在一个docker-compose.yml文件中设置,我们有acceptance.sh脚本来运行验收测试。
在挖掘文档后,我发现有可能通过以下步骤构建 CI:
docker-compose.yml和项目Dockerfile- 要么:
docker-compose upONBUILT运行测试的部分。单元测试通过mix tests,验收通过scripts/acceptance.sh。并行运行它们会很酷。docker-compose,清理容器因为这是我第一次接触 Jenkins,所以出现了一系列问题:
谢谢
这是一个可行的策略吗?
是的。我认为将docker-compose.yml和包含Dockerfile在项目回购中会更好。这样,任何更改都与使用更改的代码版本相关联。如果它在外部存储库中,则更改变得更加困难(除非您以某种方式固定 git sha ,例如使用子模块)。
项目的 Dockerfile 将包含
ONBUILD运行测试的部分
我会避免这种情况。只需设置一个不同的命令来在容器中运行测试,而不是在构建时。
如何将测试输出与 Jenkins 连接?
Jenkins 仅使用构建步骤中的退出状态,因此只要测试脚本退出时出现非零代码失败和零代码成功,这就是您所需要的。打印到 stdout/stderr 的测试输出将在 jenkins 控制台中可见。
如何运行和关闭 docker-compose?
我会推荐这个来运行 Compose:
docker-compose pull # if you use images from the hub, pull the latest version
docker-compose up --build -d
Run Code Online (Sandbox Code Playgroud)
在关闭的构建后步骤中:
docker-compose down --volumes
Run Code Online (Sandbox Code Playgroud)
我们是否需要/想要为此编写一个管道?
不,我认为只做一份工作就可以了。首先通过简单的设置使其工作,然后您可以弄清楚需要将哪些内容拆分为不同的工作。
| 归档时间: |
|
| 查看次数: |
5564 次 |
| 最近记录: |