【发布时间】: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