Rai*_*aif 2 docker docker-compose
是否有可能让docker-compose构建图像并将其推送到远程仓库?现在我做了
docker-compose
然后我建立
docker-compose config --services
循环遍历名称重建imagename和标签,然后执行
docker push blah
似乎有一种方法可以让它推动它.
ako*_*sky 17
首先,您需要使用该aws ecr get-login命令为AWS ECR生成登录.在bash我做了:
$ eval $(aws ecr get-login --no-include-email)
Run Code Online (Sandbox Code Playgroud)
然后,对于每个图像,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...
Run Code Online (Sandbox Code Playgroud)
在我的.env文件中,我将DOCKER_REGISTRY设置为amazon注册表位置:
DOCKER_REGISTRY=919057965832.dkr.ecr.us-east-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
要在ecr中创建存储库(再次使用bash):
$ for r in $(grep 'image: \${DOCKER_REGISTRY}' docker-compose.yml | sed -e 's/^.*\///')
> do
> aws ecr create-repository --repository-name "$r"
> done
Run Code Online (Sandbox Code Playgroud)
(输出将显示包含帐户和区域的注册表信息,因此如果您愿意,可以在此时检查/设置.env文件).
然后你可以用通常的方式构建和推送图像:
$ docker-compose build
$ docker-compose push
Run Code Online (Sandbox Code Playgroud)
从https://docs.docker.com/compose/compose-file/compose-file-v3/#build的文档中查看此片段:
如果您指定图像和构建,则 Compose 会使用图像中指定的 webapp 和可选标签来命名构建的图像:
build: ./dir
image: webapp:tag
Run Code Online (Sandbox Code Playgroud)
这将生成一个名为 webapp 和标记的图像,从 ./dir 构建。
您至少可以在映像名称中添加映像存储库。然后您应该能够使用docker-compose push较新版本的 Docker Compose。
| 归档时间: |
|
| 查看次数: |
6897 次 |
| 最近记录: |