我正在尝试使用 Docker Cloud自动测试我的项目的 PR。我设置了如下构建规则:
Dockerfile:
FROM 节点:8.4.0-alpine ENV NODE_ENV=生产 工作目录 /olimat/api 复制 package.json package-lock.json ./ 运行 npm install --quiet 复制 ./public ./public 复制 ./config ./config 复制 ./src ./src CMD npm 启动
Dockerfile.dev:
FROM 节点:8.4.0-alpine 工作目录 /olimat/api 复制 package.json package-lock.json ./ 运行 npm install --quiet 复制 ./public ./public 复制 ./config ./config 复制 ./src ./src 复制 ./db ./db
码头工人-compose.test.yml:
版本:'3.2' 服务: 苏特: 建造: 语境: 。/ dockerfile: Dockerfile.dev 命令:npm 测试 取决于: - api 环境: NODE_ENV:测试 接口: 建造: 语境: 。/ 码头文件:码头文件 取决于: - D b D b: 环境: POSTGRES_USER:postgres POSTGRES_PASSWORD:dev123 图片:postgres:9.6.4-alpine
在本地运行测试,使用
docker-compose -f docker-compose.test.yml 运行 sut一切正常:
在 Docker Cloud 上,测试运行,但似乎永远不会返回退出代码:
我在这里 1 小时 46 分钟后取消了。发生了什么?运行测试后如何使sut服务容器退出?
完整的构建日志:
在 Docker Cloud 的基础架构中构建... 克隆成'.'... 警告:将 IP 地址“192.30.253.112”的 RSA 主机密钥永久添加到已知主机列表中。 重置分支“主” 你的分支是最新的'origin/master'。 为 index.docker.io/unemat/olimat-backend:latest 拉取缓存层... 完毕! 内核版本:4.4.0-93-generic 拱门:amd64 构建时间:2017-08-17T22:50:04.828747906+00:00 API版本:1.30 版本:17.06.1-ce 最小API版本:1.12 GitCommit: 874a737 操作系统:linux 版本:go1.8.3 开始构建 index.docker.io/unemat/olimat-backend:latest... 步骤 1/9:从节点:8.4.0-alpine ---> 016382f39a51 步骤 2/9 : ENV NODE_ENV 生产 ---> 在 b0aa12f6d329 中运行 ---> 8c0420481faa 删除中间容器 b0aa12f6d329 步骤 3/9:WORKDIR /olimat/api ---> 669997c76951 卸下中间容器 b9344977ce13 第 4/9 步:复制 package.json package-lock.json ./ ---> 562fb1b9d9db 卸下中间容器 3778fb63cd12 步骤 5/9:运行 npm install --quiet ---> 在 459a90d4ce4f 中运行 > uws@0.14.5 安装 /olimat/api/node_modules/uws > 节点 gyp 重建 > build_log.txt 2>&1 || 出口 0 19.34s 新增 261 个包 ---> a22bd7c951bd 卸下中间容器 459a90d4ce4f 步骤 6/9:复制 ./public ./public ---> 3555f3f71011 卸下中间容器 f6343f447c14 步骤 7/9:复制 ./config ./config ---> ffebbe0eae44 卸下中间容器 1b6a25d1b044 步骤 8/9:复制 ./src ./src ---> ae66609e0177 卸下中间容器 a139a0a67b34 步骤 9/9:CMD npm 启动 ---> 在 b1bc735877c5 中运行 ---> fba69367a862 卸下中间容器 b1bc735877c5 成功搭建fba69367a862 成功标记 unemat/olimat-backend:latest 在 docker-compose.test.yml 中开始测试... db 使用图像,跳过 构建api 步骤 1/9:从节点:8.4.0-alpine ---> 016382f39a51 步骤 2/9 : ENV NODE_ENV 生产 ---> 使用缓存 ---> 8c0420481faa 步骤 3/9:WORKDIR /olimat/api ---> 使用缓存 ---> 669997c76951 第 4/9 步:复制 package.json package-lock.json ./ ---> 使用缓存 ---> 562fb1b9d9db 步骤 5/9:运行 npm install --quiet ---> 使用缓存 ---> a22bd7c951bd 步骤 6/9:复制 ./public ./public ---> 使用缓存 ---> 3555f3f71011 步骤 7/9:复制 ./config ./config ---> 使用缓存 ---> ffebbe0eae44 步骤 8/9:复制 ./src ./src ---> 使用缓存 ---> ae66609e0177 步骤 9/9:CMD npm 启动 ---> 使用缓存 ---> fba69367a862 成功搭建fba69367a862 成功标记 bs3klcfwuijavr4uf4daf28_api:latest 建筑物 步骤 1/9:从节点:8.4.0-alpine ---> 016382f39a51 步骤 2/9:维护者 Josias Iquabius ---> 在 ed1306bea19a 中运行 ---> 5956fb44e0cc 卸下中间容器 ed1306bea19a 步骤 3/9:WORKDIR /olimat/api ---> be7fd8615cd4 移除中间容器 2bde5cfe6bdd 第 4/9 步:复制 package.json package-lock.json ./ ---> b68a99364f80 移除中间容器 d0f4715b4774 步骤 5/9:运行 npm install --quiet ---> 在 f9f053df7774 中运行 > uws@0.14.5 安装 /olimat/api/node_modules/uws > 节点 gyp 重建 > build_log.txt 2>&1 || 出口 0 在 32.983 秒内增加了 666 个包 ---> 8f2ace5a6f9e 删除中间容器 f9f053df7774 步骤 6/9:复制 ./public ./public ---> 0cac78c670e2 卸下中间容器 ab0f50cbc747 步骤 7/9:复制 ./config ./config ---> ce57c484d544 卸下中间容器 126828beed7d 步骤 8/9:复制 ./src ./src ---> 7cd682b0f4d9 卸下中间容器 819d441c2307 步骤 9/9:复制 ./db ./db ---> 244561b4bc52 卸下中间容器 1a80d8f935b4 成功搭建244561b4bc52 成功标记 bs3klcfwuijavr4uf4daf28_sut:latest 使用默认驱动程序创建网络“bs3klcfwuijavr4uf4daf28_default” 拉数据库(postgres:9.6.4-alpine)... 9.6.4-alpine:从库/postgres 中提取 摘要:sha256:5fd73de311d304caeb4f907d4f559d322805abc622e4baf5788c6a079ee5224e 状态:为 postgres 下载了更新的图像:9.6.4-alpine 创建 bs3klcfwuijavr4uf4daf28_db_1 ... 创建 bs3klcfwuijavr4uf4daf28_db_1 创建 bs3klcfwuijavr4uf4daf28_db_1 ... 完成 创建 bs3klcfwuijavr4uf4daf28_api_1 ... 创建 bs3klcfwuijavr4uf4daf28_api_1 创建 bs3klcfwuijavr4uf4daf28_api_1 ... 完成 创建 bs3klcfwuijavr4uf4daf28_sut_1 ... 创建 bs3klcfwuijavr4uf4daf28_sut_1 创建 bs3klcfwuijavr4uf4daf28_sut_1 ... 完成 npm info 如果以 ok 结尾,它就可以工作 使用 npm@5.3.0 的 npm 信息 使用 node@v8.4.0 的 npm 信息 npm info 生命周期 olimat-backend@0.0.1~pretest: olimat-backend@0.0.1 npm info 生命周期 olimat-backend@0.0.1~test: olimat-backend@0.0.1 > olimat-backend@0.0.1 测试 /olimat/api > 笑话 通过 src/services/questions/questions.test.js ● 控制台 console.log src/models/questions.model.js:10 问题表不存在! 信息:之后:问题 - 方法:查找 通过 src/app.test.js 测试套件:2 个通过,共 2 个 测试:5 次通过,共 5 次 快照:共 0 个 时间:6.505s 运行所有测试套件。 构建已取消。 错误:构建失败,退出代码为 3 内置 'master:/api' (4eeca024) 在 1:46:31 后取消