1

我有一个正在用 Maven 构建的项目。测试用例使用测试容器来启动一个 MS-SQLserver 实例。管道目前正在失败。

我使用的管道图像的原因是:

image: maven:3.6.0

没有 docker 和 sqlserver 映像。

我的问题是:

我是否使用 java + maven + docker + sqlserver 创建自己的图像并在管道文件中使用它

或者

只是在管道文件中有命令来安装我需要的东西吗?我认为这将是 WRT 构建时间较慢的选项


启用 testcontainers ryuk 时 bitbucket 管道失败的示例:

2019-09-09 07:21:22.719  WARN 416 --- [containers-ryuk] o.testcontainers.utility.ResourceReaper  : Can not connect to Ryuk at localhost:32768
java.net.SocketException: Broken pipe (Write failed)
    at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.8.0_222]
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) ~[na:1.8.0_222]
    at java.net.SocketOutputStream.write(SocketOutputStream.java:134) ~[na:1.8.0_222]
    at org.testcontainers.utility.ResourceReaper$FilterRegistry.register(ResourceReaper.java:380) ~[testcontainers-1.11.2.jar:na]
4

2 回答 2

3

您可以通过禁用Ryuk让TestContainers与您的Bitbucket 管道一起工作。您还需要在脚本中添加为服务,如下所示:docker

image: atlassian/default-image:2

pipelines:
  default:
    - step:
        script:
          - export TESTCONTAINERS_RYUK_DISABLED=true
          # Your commands should come after setting the environment variable above
          # ...
          # ...
        services:
          - docker
definitions:
  services:
    docker:
      memory: 2048

此处提供了有关此的详细信息。

于 2019-06-28T15:27:32.737 回答
1

您需要将“docker”服务添加到您的管道并禁用 Ryuk

于 2019-02-15T17:13:15.610 回答