带有 docker 容器的 bitbucket 管道

bitbucket pipeline with docker container

我有一个正在使用 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]

您需要将 "docker" 服务添加到管道和 disable Ryuk

可以获得TestContainers to work with your Bitbucket Pipelines by disabling Ryuk。您还需要在脚本中添加 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

提供了有关此的详细信息here