如何在testcontainers中使用本地Docker镜像?

13

我想要使用一个本地Docker镜像,并与testcontainers一起使用。

代码如下:

new GenericContainer("rserver:latest")...

不过看起来另一个同名的镜像从远程仓库被获取了。

我该如何强制testcontainers使用本地镜像?


Translated:

不过,看起来从远程仓库获取了另一张同名的图片。

我该如何强制 testcontainers 使用本地图片?


2
尝试标记您的本地镜像吗?docker build -t local/rserver,然后使用它。 - OneCricketeer
1
也许不要使用“latest”,而是使用您本地镜像的版本? - Ben
@cricket_007 谢谢。使用另一个名称作为解决方法可以解决问题。我仍然想知道是否可以强制使用本地图像。 - deamon
@Ben 如果只指定版本,是否会减少获取不想要的图像的机会? - deamon
1个回答

7
我知道这个答案来的有点晚,但它可能对遇到完全相同问题的其他人有用。
如果您已经拥有所需的镜像,请尝试将容器的隐式图像拉取策略设置为默认值:
GenericContainer container = new GenericContainer("someImage")
        .withImagePullPolicy(PullPolicy.defaultPolicy());

默认的镜像拉取策略告诉Docker仅在本地不存在该镜像时才从远程仓库拉取。

请注意,这种方法(withImagePullPolicy(..))仅适用于TestContainers依赖的最新版本。我使用的是1.14.3版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接