如何解决Docker-Compose - 将应用程序从 Bitbucket 推送到 ECR
我需要将一个 docker 应用程序从 bitbucket 推送到 ECR。 docker-compose 文件启动了我需要推送到 ECR 的 3 个容器(PHP、PHP-FPM 和 NGINX)。我知道我需要在推送容器之前用 repo 名称标记容器,但是我应该在哪里执行此操作? bitbucket-pipeline 会是什么样子?
version: "3.1"
services:
php:
image: xxx/docker/php:7.3-dev
container_name: xxx-php
working_dir: /application
volumes:
- ./:/application
- "~/.composer:/home/root/.composer"
environment:
MEM_LIMIT: "512m"
networks:
- app-network
depends_on:
- database
phpfpm:
image: xxx/docker/php:7.3-fpm-dev
container_name: xxx-phpfpm
environment:
MAX_REQUESTS: 100
MAX_CHILDREN: 10
SLOW_TIMEOUT: 10
TERM_TIMEEOUT: 10
MEM_LIMIT: 256m
volumes:
- ./:/application
networks:
- app-network
depends_on:
- database
nginx:
image: xxx/docker/nginx:1.10.0-
container_name: xxx-nginx
ports:
- "8080:80"
environment:
UPSTREAM_MODE: compose
volumes:
- ./:/application
networks:
- app-network
- reactor_app-network
depends_on:
- phpfpm
解决方法
所以管道应该如下所示
首先使用最常用的容器扫描工具 clair 对任何漏洞进行容器扫描。如果您愿意,您可以寻找其他开源选项。
然后第二阶段应该是从您的存储库中获取 Dockerfile 并构建图像。可以通过使用 docker-dind 镜像启动容器来完成镜像构建
docker build -t test:$env .
发布您应该使用 get-login 登录 ECR 的帖子
aws ecr get-login --registry-ids 012345678910 023456789012
使用上述命令的输出,您应该能够登录 ECR。
然后执行docker push
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。