【发布时间】:2016-07-28 10:57:24
【问题描述】:
我们想尝试使用 Jenkins 为我们的项目设置 CI/CD。该项目本身具有 Elasticsearch 和 PostgreSQL 作为运行时依赖项以及用于验收测试的 Webdriver。
在开发环境中,所有内容都设置在一个 docker-compose.yml 文件中,我们有 acceptance.sh 脚本来运行验收测试。
在挖掘文档后,我发现可以通过以下步骤构建 CI:
- 码头化项目
- 从 git repo 拉取项目
- 不知何故拉
docker-compose.yml和项目Dockerfile- 要么:- 放入项目仓库
- 把它放在单独的仓库中(现在就是这样)
- 放在服务器的某个地方,然后直接复制过来
- 执行
docker-compose up - 项目的 Dockerfile 将有
ONBUILT部分来运行测试。单元测试通过mix tests运行并通过scripts/acceptance.sh接受。并行运行它们会很酷。 - 关闭
docker-compose,清理容器
因为这是我第一次接触 Jenkins,所以出现了一系列问题:
- 这是一个可行的策略吗?
- 如何将测试输出与 Jenkins 连接?
- 如何运行和关闭 docker-compose?
- 我们是否需要/想要为此编写管道?当我们将在下一阶段获得 CD 时,我们是否需要/想要管道?
谢谢
【问题讨论】:
-
是的,这是一个可行的策略。但它需要在 docker 内部运行 docker,这是一种相当先进的技术。你可以在
Docker book这里找到更多信息dockerbook.com -
嗨,Miad!谢谢你的参考,我一定会去看看这本书!该插件可能有助于使用 docker go.cloudbees.com/docs/cloudbees-documentation/cje-user-guide/… 吗?
-
尚未检查。可能值得一试
标签: jenkins docker docker-compose