[英]docker-compose push image to aws ecr
是否可以讓 docker-compose 既構建映像又將其推送到遠程存儲庫? 現在我做
docker-compose
建造然后我做
docker-compose config --services
遍歷名稱重建圖像名稱和標簽,然后執行
docker push blah
似乎必須有一種方法可以讓它也推動。
首先,您需要使用aws ecr get-login-password
命令為 AWS ECR 生成登錄名。 在 bash 我做了:
$ eval $(aws ecr get-login-password)
然后對於每個鏡像,ecr 要求您在推送鏡像之前創建一個存儲庫。
在我的 docker-compose.yml 文件中,我有一系列服務:
version: '3'
services:
scheduler:
image: ${DOCKER_REGISTRY}/pipeline_scheduler
build:
context: ../
dockerfile: ./docker/scheduler/Dockerfile
startup:
image: ${DOCKER_REGISTRY}/pipeline_setup
build:
context: ../
dockerfile: ./docker/startup/Dockerfile
# etc...
在我的 .env 文件中,我將 DOCKER_REGISTRY 設置為亞馬遜注冊表位置:
DOCKER_REGISTRY=919057965832.dkr.ecr.us-east-1.amazonaws.com
在 ecr 中創建存儲庫(再次使用 bash):
$ for r in $(grep 'image: \${DOCKER_REGISTRY}' docker-compose.yml | sed -e 's/^.*\///')
> do
> aws ecr create-repository --repository-name "$r"
> done
(輸出將顯示包括帳戶和區域在內的注冊表信息,因此如果您願意,此時您可以檢查/設置您的 .env 文件)。
然后你可以用通常的方式構建和推送圖像:
$ docker-compose build
$ docker-compose push
從https://docs.docker.com/compose/compose-file/compose-file-v3/#build的文檔中查看此片段:
如果您指定 image 和 build,那么 Compose 會使用 image 中指定的 webapp 和可選標簽命名構建的鏡像:
build: ./dir
image: webapp:tag
這將產生一個名為 webapp 和標記標簽的圖像,從 ./dir 構建。
您至少可以在圖像名稱中添加圖像存儲庫。 然后,您應該能夠將docker-compose push
與較新版本的 Docker Compose 一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.