[英]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 代理的“黑客”,但它確實不值得付出努力。
如果您使用的碼頭工人,撰寫,一個方式來獲得減輕這種丑陋的主機部分是使用ARG
在Dockerfile
和定義你的主.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.