簡體   English   中英

如何為 Amazon ECR 配置自定義域名

[英]How to configure custom domain name for Amazon ECR

Amazon Elastic Container Repositories (ECR) 具有非常不友好的 URI,例如99999999999.dkr.ecr.eu-west-1.amazonaws.com 是否可以為 ECR 配置自定義域名?

簡單的解決方案是創建一個 CNAME 記錄以指向 ECR URI,但這實際上不起作用(SSL 證書與域名不匹配, aws ecr get-login生成aws ecr get-login不通過,無法推送圖像用自定義域名標記...)。

還有其他選擇嗎?

遺憾的是,AWS 不支持 ECR 的自定義域名。 您現在必須使用自動生成的。 有圍繞 Nginx 代理的“黑客”,但它確實不值得付出努力。

如果您使用的碼頭工人,撰寫,一個方式來獲得減輕這種丑陋的主機部分是使用ARGDockerfile和定義你的主.env

派生/Dockerfile:

ARG REGISTRY_HOST
FROM ${REGISTRY_HOST}/namespace/base:latest
...

.env:

REGISTRY_HOST=99999999999.dkr.ecr.eu-west-1.amazonaws.com

docker-compose.yml:

version: "3.3"
services:

  base-service:
    image: ${REGISTRY_HOST}/namespace/base:latest
    build:
      context: base/

    ...

  derived-service:
    image: ${REGISTRY_HOST}/namespace/derived:latest
    build:
      context: derived/
      args:
        - REGISTRY_HOST=${REGISTRY_HOST}
...

${REGISTRY_HOST}放在image聲明中的好處是您可以docker-compose push base-service並將鏡像正確地推送到您的 ECS 存儲庫。

這一切都不像 AWS 允許 ECS 存儲庫的自定義主機名那么干凈,但它比在所有Dockerfile硬編碼那個可怕的字符串Dockerfile 顯然,您也可以在沒有 docker-compose 的情況下執行此操作,但是您必須在命令行上定義構建參數,例如docker build --build-arg REGISTRY_HOST=99999999999.dkr.ecr.eu-west-1.amazonaws.com ...

暫無
暫無

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

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