Не удается получить изображение Docker: RemoteDockerImage

#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 исправлено автоматически, это моя забота