相关疑难解决方法(0)

如何在没有 Dockerfile 的情况下设置 Docker Compose?

我花了过去几个小时尝试设置 Nodejs 14 和 rethinkdb 2.3.5 的 2 个默认映像,如果语气有点沮丧,我很抱歉,但我目前很沮丧。

我的要求看似非常简单。

我想要:

  1. 下载nodejs 14和rethinkdb 2.3.5的默认镜像
  2. 将当前目录中的所有内容复制到 Nodejs 14 映像中。
  3. 我希望 Nodejs 映像依赖于 RethinkDB 映像。
  4. 在nodejs 14镜像中运行2个命令;npm cinpm test
  5. 查看测试中的标准输出。

我不需要:

  1. 主机可访问的任何端口。
  2. 自定义任何 Dockerfile 或对默认映像进行任何更改。
  3. 从主机文件系统到容器的任何更新。
  4. 将任何数据从主机复制到 RethinkDB 容器。

为什么?

我希望测试能够在所有开发人员机器上重现 - 目前没有 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)

node.js rethinkdb docker-compose

13
推荐指数
1
解决办法
1万
查看次数

使用 Docker 和 Jenkins 运行测试 - 测试结果

我有一个用 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)

continuous-integration rspec ruby-on-rails jenkins docker

2
推荐指数
1
解决办法
2619
查看次数