我花了过去几个小时尝试设置 Nodejs 14 和 rethinkdb 2.3.5 的 2 个默认映像,如果语气有点沮丧,我很抱歉,但我目前很沮丧。
我的要求看似非常简单。
npm ci和npm test。我希望测试能够在所有开发人员机器上重现 - 目前没有 CI。无论开发人员将项目保存在硬盘上的哪个位置。
我有一个docker-compose.yml文件。
version: "3"
services:
tests:
image: node:14
ports:
- "3000:3000"
# command:
# - npm ci
# - npm test
volumes:
- ".:/cli-app"
depends_on:
- rethinkdb
rethinkdb:
image: rethinkdb
ports:
- "28015:28015" …Run Code Online (Sandbox Code Playgroud) 我有一个用 Rails 编写的应用程序。为了测试它,我构建了一个 docker 镜像。一切正常。
然而,当我配置 Jenkins 来运行这些测试时,问题就出现了。这是我在构建步骤中所做的事情:
docker-compose up rspec
Run Code Online (Sandbox Code Playgroud)
其中 rspec 是在 docker-compose.yml 中定义的服务,包含以下命令:
command: "rspec spec/"
Run Code Online (Sandbox Code Playgroud)
当 rspec 返回错误时,构建仍然成功。这是输出的示例:
...
21:42:24 [36mrspec_1 |[0m should save second profile
21:42:24 [36mrspec_1 |[0m
21:42:24 [36mrspec_1 |[0m Failures:
21:42:24 [36mrspec_1 |[0m
21:42:24 [36mrspec_1 |[0m 1) New profile Should persist new_profile_pricture
21:42:24 [36mrspec_1 |[0m Failure/Error: jump_to_four_phase_with(new_profile_picture)
21:42:24 [36mrspec_1 |[0m RuntimeError:
21:42:24 [36mrspec_1 |[0m Timeout for '#new_profile' (1) appearance reached!
...
21:42:25 [36mcomposes_rspec_1 exited with code 1
21:42:25 [0m[Profiler] $ /bin/sh -xe /tmp/hudson4606189750126491465.sh …Run Code Online (Sandbox Code Playgroud)