#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. Для чего это стоило, я сделал то же самое 🙂