[英]How to pull a private docker image from AWS ECR to use with the Testcontainers library in Java
我正在嘗試通過托管在私有 AWS ECR 存儲庫中的 docker 圖像以編程方式創建和啟動 MongoDBContainer。 這將用於自動化集成測試,將在本地和 CICD 管道內運行。 但這不起作用(見 2.)。 當我從 DockerHub 中拉取圖像時(請參閱 1.),它可以正常工作。 我到目前為止的代碼是:
@Testcontainers
@AutoConfigureDataMongo
public interface MongoTestContainer {
// 1. This pull the image directly from DockerHub, and it works.
//@Container MongoDBContainer mongoDBContainer = new
//MongoDBContainer("mongo:5.0.11");
// 2. This should pull the image from AWS ECR but doesn't work.
@Container MongoDBContainer mongoDBContainer = new
MongoDBContainer("<account>.dkr.ecr.<region>.amazonaws.com/<imageName>:<version>");
@DynamicPropertySource
static void setProperties(DynamicPropertyRegistry registry) {
registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
}
}
有任何想法嗎?
親切的問候,約翰
使用第二種方法應該會拋出異常失敗,消息應該提供我將在下面提到的修復方法。 有兩種選擇:
~/.testcontainers.properties
添加hub.image.name.prefix=custom.dockerhub.repository/
new MongoDBContainer(DockerImageName.parse("<account>.dkr.ecr.<region>.amazonaws.com/<imageName>:<version>").asCompatibleSubstituteFor("mongo")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.