簡體   English   中英

aws cdk 將圖像推送到 ecr

[英]aws cdk push image to ecr

我正在嘗試做一些看起來相當合乎邏輯和直截了當的事情。

我正在使用 AWS CDK 來預置一個 ecr 存儲庫:

     repository = ecr.Repository(
                            self, 
                            id="Repo", 
                            repository_name=ecr_repo_name,
                            removal_policy=core.RemovalPolicy.DESTROY
                            )

然后我有一個 Dockerfile,它位於我的項目的根目錄中,我試圖在部署中推送到同一個 ECR 存儲庫。

我在相同的服務代碼中執行此操作:

    assets = DockerImageAsset(
            self, 
            "S3_text_image", 
            directory=str(Path(__file__).parent.parent),
            repository_name=ecr_repo_name
            )

部署正常並繼續進行並創建 ECR 存儲庫,但映像被推送到默認位置aws-cdk/assets

如何使部署將我的 Dockerfile 發送到我希望它所在的確切 ECR 存儲庫?

AWS CDK 棄用了DockerImageAsset上的repositoryName屬性。 GitHub 上存在一些引用該問題的問題。 請參閱其中一位開發人員的評論

目前 CDK 帶有 2 個資產系統:

舊版(目前仍然是默認設置),您可以在其中為每個資產指定一個 repositoryName,CLI 將創建並推送到您命名的任何 ECR 存儲庫。

新的(將來將成為默認),其中將通過執行 cdk 引導創建單個 ECR 存儲庫,並將所有圖像推送到其中。 CLI 將不再創建存儲庫,它必須已經存在。 IIRC 這樣做是為了限制部署所需的權限。 @eladb,你能幫我記住為什么我們選擇這樣做嗎?

有一個新構造請求,允許您部署到(aws-ecr-assets) ecr-deployment #12597的自定義 ECR 存儲庫。

用例

我想使用此功能將我的本地圖像源代碼完全部署到 ECR,使用我之前在我的 CDK 應用程序中創建的 ECR 存儲庫或更重要的是在應用程序外部使用 arn 創建。 最大的問題是由於審計和語義版本控制,圖像無法完全抽象到資產倉庫中。

如果您不想等待 CDK 團隊實施新結構,在https://github.com/wchaws/cdk-ecr-deployment也有第三方解決方案。

暫無
暫無

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

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