#java #docker #cucumber #testcontainers
Вопрос:
Я использую testcontainers
для интеграционного теста, в котором я создаю контейнер. Но его сбой со следующей ошибкой:
Step failed
org.testcontainers.containers.ContainerLaunchException: Container startup failed
.....
Caused by: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageName=<my-docker-image>:latest, imagePullPolicy=DefaultPullPolicy())
at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1282)
at org.testcontainers.containers.GenericContainer.logger(GenericContainer.java:616)
at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:321)
at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:312)
....
Посмотрев на ошибку, похоже, что она не может найти изображение докера.
Но у меня есть изображение в локальном, я проверил, сравнивая символ за символом.
Я отладил его и в этой строке проверяю, что изображение имеет все правильное значение, но по какой-то причине оно выдает исключение вместо возврата правильного значения.
Есть идеи, как это можно исправить?
Версии: testcontainers : 1.15.0-версия докера rc2 : 3.1.0, Движок: 20.10.2
Добавление журнала отладки(см., как this.image.getImage()
имя получает имя, но два других не удается):
Комментарии:
1. Вы уверены, что на вашем изображении тоже есть
latest
метка? Я ожидаю, что вы изменили часть из журнала вывода <my-docker-image>.2. Я абсолютно уверен, что изменил его, потому что на нем было название моей компании. Я проверил у другого инженера имя и тег изображения, поэтому я абсолютно уверен, что имя то же самое 🙁
3. Я бы рекомендовал добавить точку останова при запуске
org.testcontainers.images.AbstractImagePullPolicy.shouldPull()
метода и продолжить отладку. Похоже, по какой-то причине Tescontainers не видит, что изображение уже доступно в локальном кэше.
Ответ №1:
.testcontainer.properties
в моем $HOME
каталоге исправлена проблема для меня. Этот файл используется для переопределения свойств, но я все еще не уверен, как это устраняет проблему. Я вижу в своем .gitlab.yml
то, что мы делаем, и просто имитировал это в своем местном, что решило проблему.
Комментарии:
1. Вы получаете ту же ошибку ? Можете ли вы опубликовать свою ошибку msg?
2. значит, его починили?
3. да, он получил fixed.it исправлено автоматически, это моя забота