【问题标题】:Can't get Docker image: RemoteDockerImage无法获取 Docker 映像:RemoteDockerImage
【发布时间】:2021-06-16 12:34:27
【问题描述】:

我正在使用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)
....

通过查看错误,它似乎无法找到 docker 映像。 但是,我确实在本地有图像,我通过逐个字符比较来检查。

我对其进行了调试,在this 行,我检查了图像是否具有所有正确的值,但由于某种原因,它抛出异常而不是返回正确的值。

知道如何解决这个问题吗?

版本: 测试容器:1.15.0-rc2 Docker 版本:3.1.0,引擎:20.10.2

添加调试日志(查看this.image.getImage() 名称如何获取名称但其他两个失败):

【问题讨论】:

  • 你确定你的图片也有latest标签吗?我希望您已经更改了 输出日志中的部分。
  • 我绝对确定,我更改了它,因为它有我的公司名称。我与另一位工程师核对了图像的名称和标签,所以我确定名称相同:(
  • 我建议在 org.testcontainers.images.AbstractImagePullPolicy.shouldPull() 方法启动处添加断点并进行更多调试。由于某种原因,Tescontainers 似乎看不到该图像已在本地缓存中可用。

标签: java docker cucumber testcontainers


【解决方案1】:

.testcontainer.properties 在我的$HOME 目录中为我解决了这个问题。 该文件用于覆盖属性,但我仍然不确定如何解决问题。 我在我的.gitlab.yml 中看到我们所做的并且只是在我当地模仿的,这解决了问题。

【讨论】:

  • 您是否遇到同样的错误?你能发布你的错误消息吗?
  • 所以它修好了?
  • 是的,它已修复。它会自动修复,这是我关心的问题
猜你喜欢
  • 2017-09-22
  • 2021-08-26
  • 2019-10-21
  • 2023-03-17
  • 2019-06-02
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2021-02-03
相关资源
最近更新 更多