You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为运行Docker容器的Elastic Beanstalk创建应用新版本(偏好AWS CLI)

使用AWS CLI部署ECR镜像到Elastic Beanstalk(无需EB CLI)

核心思路

通过将指向ECR镜像的docker-compose.yml打包上传到S3,再用AWS CLI创建应用版本并部署,全程无需重新构建镜像或使用EB CLI。


步骤1:准备docker-compose.yml文件

编写仅包含ECR镜像引用的配置文件,示例如下(替换为你的实际信息):

version: '3'
services:
  app:
    image: 123456789012.dkr.ecr.us-east-1.amazonaws.com/your-repo:v1.0.0
    ports:
      - "80:80"

注意:需确保Elastic Beanstalk环境的EC2实例角色(默认是aws-elasticbeanstalk-ec2-role)已附加AmazonEC2ContainerRegistryReadOnly权限策略,否则实例无法拉取ECR镜像。

步骤2:打包配置文件为ZIP包

直接将docker-compose.yml打包成压缩包:

zip deploy.zip docker-compose.yml

步骤3:上传ZIP包到S3存储桶

如果没有可用的S3桶,先创建一个(替换桶名和区域):

aws s3 mb s3://your-eb-deploy-bucket --region us-east-1

然后上传打包好的文件:

aws s3 cp deploy.zip s3://your-eb-deploy-bucket/deploy-v1.0.0.zip

步骤4:创建Elastic Beanstalk应用版本

使用AWS CLI创建关联S3包的应用版本(替换应用名、版本标签、S3路径和区域):

aws elasticbeanstalk create-application-version \
  --application-name your-qa-app \
  --version-label v1.0.0-ecr \
  --source-bundle S3Bucket=your-eb-deploy-bucket,S3Key=deploy-v1.0.0.zip \
  --region us-east-1

步骤5:部署到QA环境

将新创建的应用版本部署到目标环境:

aws elasticbeanstalk update-environment \
  --environment-name your-qa-env \
  --version-label v1.0.0-ecr \
  --region us-east-1

步骤6:验证部署状态

查看环境状态,确认部署完成:

aws elasticbeanstalk describe-environments \
  --environment-names your-qa-env \
  --region us-east-1

额外注意事项

  • 执行AWS CLI的用户需要具备elasticbeanstalk:*、s3:*(针对部署桶)、iam:PassRole的权限;
  • 若使用较新版本的docker-compose语法,需确保Elastic Beanstalk环境的Docker平台版本支持对应语法;
  • 版本标签建议使用唯一标识(如Git commit hash),避免版本覆盖。

内容的提问来源于stack exchange,提问作者DrTeeth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:12:33