簡體   English   中英

如何從 AWS ECR 中提取私有 docker 圖像以與 Java 中的 Testcontainers 庫一起使用

[英]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);
  }
}

有任何想法嗎?

親切的問候,約翰

使用第二種方法應該會拋出異常失敗,消息應該提供我將在下面提到的修復方法。 有兩種選擇:

  1. ~/.testcontainers.properties添加hub.image.name.prefix=custom.dockerhub.repository/
  2. 使用new MongoDBContainer(DockerImageName.parse("<account>.dkr.ecr.<region>.amazonaws.com/<imageName>:<version>").asCompatibleSubstituteFor("mongo")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM