我有以下docker-compose.yml:
version: '3'
services:
server:
build:
context: ../../
dockerfile: ./packages/website/Dockerfile
command: yarn serve
environment:
PORT: 3000
NODE_ENV: production
restart: always
nginx:
build:
context: ./
dockerfile: ./nginx/Dockerfile
command: nginx -c /etc/nginx/nginx.conf -g "daemon off;"
depends_on:
- server
ports:
- "80:80"
restart: always
对于我来说,将其设置到 Amazon ECR 中的最佳方法是什么?
我的想法是将从上述 docker-compose.yml 文件构建的图像推送到 AWS 存储库,然后创建一个使用图像设置的新 docker-compose.yml,例如image: ecr-image-url
引用图像。
有没有更好的办法?
答案1
我不会使用 docker compose 进行构建,我会推送构建好的镜像,然后如果需要的话再用 docker-compose 链接将它们链接起来https://docs.docker.com/compose/compose-file/#links
对于构建,您可以使用 Jenkins(或其他 CI 工具)。可以在 Jenkins 上使用以下插件https://wiki.jenkins.io/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin
不过 link 命令很快就会被弃用,所以 docker 开发人员建议你创建自己的网络来组成你的服务https://docs.docker.com/compose/networking/