![](/img/trans.png)
[英]is docker-compose.yml not supported in AWS Elastic Beanstalk?
[英]AWS Elastic Beanstalk with AMI2 and docker-compose.yml
我一直在尝试使 Elastic Beanstalk 与 Docker AMI2 图像和docker-compose.yml
。 文档说它应该与docker-compose.yml
文件一起使用。 我将 ECR 用作 docker 注册表,并更新了 Elastic Beanstalk 角色,以便能够从 ECR 中提取图像。 https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/dg/single-container-docker-configuration.html
创建 docker-compose.yml 文件以将 Docker 映像从托管存储库部署到 Elastic Beanstalk。 如果您的所有部署都来自公共存储库中的图像,则不需要其他文件。 (如果您的部署必须从私有存储库获取映像,则需要包含其他配置文件以进行身份验证。有关更多信息,请参阅使用来自私有存储库的映像。)有关 docker-compose.yml 文件的更多信息,请参阅撰写文件参考在 Docker 网站上。
但是,在启动环境时,我不断收到以下消息:
实例部署:您必须在源包中的“Dockerfile”或“Dockerrun.aws.json”中指定 Docker 映像。 部署失败。
根据文档Dockerrun.aws.json
应该只需要旧 AMI。 有没有人遇到过类似的问题?
找到了解决方案。 文档指出docker-compose.yml
是唯一需要的文件,但在上传到 Elastic Beanstalk 环境之前仍需要对其进行压缩。
从 dockerrun.json 文件迁移到 docker-compose 文件时,我遇到了一些类似的问题。
我所做的基本上是在弹性 beanstalk 上创建一个新应用程序,并将Docker 下的 Amazon Linux 2 平台指定为部署选项。
下面我将附上我的 docker-compose.yaml 文件以及 Github 工作流程,如果您有兴趣(或者如果它可能对其他人有帮助)
Docker-compose.yaml,您需要删除图像或插入您自己的图像标签 url。
version: '3'
services:
node-app:
image: <IMG-TAG here e.g from ECR repository>
ports:
- 80:80
github.yaml
deploy-staging:
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v2
- name: Generate deployment package
run: |
zip -r deploy.zip *
- name: Deploy to EB
uses: einaregilsson/beanstalk-deploy@v9
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
application_name: test
environment_name: test
version_label: ${{ github.sha }}
region: eu-north-1
deployment_package: deploy.zip
use_existing_version_if_available: true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.