Запуск тестовых контейнеров в Bitbucket

#docker #bitbucket-pipelines #testcontainers

#docker #bitbucket-конвейеры #тестовые контейнеры

Вопрос:

Я добавляю тестовые контейнеры в свои интеграционные тесты. Локально все работает нормально. Чтобы позволить ему работать на моих конвейерах Bitbucket, я создал следующий (упрощенный) bitbucket-pipeline.yml:

 image: maven:3.6.1

pipelines:
  default:
    - step:
      caches:
        - maven
      script:
        - export TESTCONTAINERS_RYUK_DISABLED=true
        - mvn -B verify
  branches:
    master:
     - step:
       caches:
         - maven
       services:
         - docker
       script:
         - ..
definitions:
  services:
    docker:
      memory: 2048
  

Но когда конвейер запускается и тесты выполняются, служба docker кажется несуществующей:

 Container startup failed
org.testcontainers.containers.ContainerLaunchException: Container startup failed
Caused by: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageName=postgres:12.4, imagePullPolicy=DefaultPullPolicy())
Caused by: java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration
  

Комментарии:

1. Не могли бы вы добавить весь раздел журнала с этим исключением, пожалуйста? Кроме того, знаете ли вы, как настраивается среда docker env в bitbucket? Например, это подключение к удаленному или локальному демону docker.

Ответ №1:

Ответ довольно смущающий. Я забыл добавить

 services:
     - docker
  

часть конвейера по умолчанию. Итак, как показало ведение журнала, для ветвей, отличных от «master», служба docker не была запущена.

Комментарии:

1. Для чего это стоило, я сделал то же самое 🙂