我在配置 Jenkins 以在 dockerized 应用程序上运行测试时遇到了一些困难。
首先是我的设置:项目在 bitbucket 上,我有一个 docker-compose 运行我的应用程序,该应用程序目前由 3 个三个容器组成(一个用于 mongo,一个用于 redis,一个用于我的节点应用程序)。
bitbucket 的 webhook 运行良好,当我推送时会触发 Jenkins。
但是,我想为构建做的是:
获取我的 docker-compose 所在的仓库,运行 docker-compose 以使我的集群运行,然后在仓库中运行“npm 测试”(我的测试使用 mocha),最后让 Jenkins 通知测试是否有通过与否。
如果有人可以帮助我让 Jenkins 应用这个操作链,那就太棒了。
最佳答案
最简单的方法是使用 jenkins 管道插件或 shell 脚本。
要构建 docker 镜像并运行 compose,您可以使用 docker-compose
命令。重要的是您需要从 compose 级别重建 docker 镜像(因为如果您运行 docker-compose run
只有 jenkins 可以使用以前的 bilded 镜像)。所以你需要运行 docker-compose build
前。
您的 dockerfile 应该复制应用程序的所有文件。
接下来,当您的服务准备就绪时,您可以使用以下命令在 docker 镜像中运行命令:docker exec {CONTAINER_ID} {COMMAND_TO_RUN_TESTS}
.
关于jenkins - 在 Jenkins 中测试 Docker 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38371077/