jenkins - 在 Jenkins 中测试 Docker 集群

标签 jenkins docker continuous-integration

我在配置 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/

相关文章:

python - 是否可以在从 Jenkins 启动的 vagrant box 中运行测试套件?

github - CI 测试在 Dependabot 拉取请求上失败

下载 ubuntu 包时 Docker 安装失败

docker - 如何通过Dockerfile使用apt-get安装多个软件包

jenkins - 禁用构建取消对 Jenkins 中某些用户的权限?

Spring 应用程序 Jenkins 部署 - 环境

memory - 如何在 Docker 中监控 java 应用程序的内存使用情况

linux - 无法使用 root 用户连接到 Jenkins Slave

ruby - 即使明确给出路径,jenkins 也无法找到 rake 安装

linux - 如何将 Jenkins 作业从 Windows 本地计算机迁移到 Linux 服务器?