Tim*_*mur 14 amazon-web-services amazon-ecs docker
Amazon Elastic Container Repositories(ECR)具有非常人性化的URI,例如99999999999.dkr.ecr.eu-west-1.amazonaws.com
.是否可以为ECR配置自定义域名?
简单的解决方案是创建一个指向ECR URI的CNAME记录,但这确实不起作用(SSL证书与域名不匹配,生成的密码aws ecr get-login
不通过,无法推送标记有自定义域名的图像...).
还有其他选择吗?
Ada*_*son 10
遗憾的是,AWS不支持ECR的自定义域名.你现在必须使用自动生成的.有"黑客",以Nginx代理为中心,但它确实不值得努力.
小智 5
如果您使用 docker-compose,缓解丑陋主机部分的一种方法是ARG
在 中使用Dockerfile
并定义您的主机.env
。
派生/Dockerfile:
ARG REGISTRY_HOST
FROM ${REGISTRY_HOST}/namespace/base:latest
...
Run Code Online (Sandbox Code Playgroud)
.env:
REGISTRY_HOST=99999999999.dkr.ecr.eu-west-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
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}
...
Run Code Online (Sandbox Code Playgroud)
${REGISTRY_HOST}
放入声明的优点image
是您可以docker-compose push base-service
并且它将正确地将映像推送到您的 ECS 存储库。
这一切都不像 AWS 允许 ECS 存储库自定义主机名那么干净,但它比在所有Dockerfile
s 中硬编码那个可怕的字符串要好。显然,您也可以在没有 docker-compose 的情况下执行此操作,但是您必须在命令行上定义构建参数,例如docker build --build-arg REGISTRY_HOST=99999999999.dkr.ecr.eu-west-1.amazonaws.com ...
归档时间: |
|
查看次数: |
1625 次 |
最近记录: |