amazon-elastic-beanstalk - 每次我运行“eb deploy”时,AWS ElasticBeanstalk 环境都会进入“严重”状态
问题描述
我有一个通过 Docker 部署到 ElasticBeanstalk 环境中的 React git 项目。我第一次运行eb deploy
时没有遇到任何错误,它正确部署到 ElasticBeanstalk 环境中。但是,当我更改源代码时,如果我尝试将其部署到相同的环境中,则会出现错误。
这就是我运行的:
git add *
git commit -am "My First Commit"
docker build -t new-docker-version .
eb create react-env
然后在创建环境之后,我更改了源代码
git add *
git commit -am "Changed Source Code"
docker rmi new-docker-version
docker build -t new-docker-version .
eb deploy
“部署”运行大约 10 分钟,然后进入“严重”状态,原因如下:
Incorrect application version "app-f43da-200915_151515" (deployment 4). Expected version "app-7295-200915_141954" (deployment 1).
如何通过 eb cli 将源代码的更新版本部署到同一环境中?
解决方案
这需要相当多的努力和挖掘,可能有更好的答案,但这是我的看法。
为了使其完美运行,不应从控制台面板启动 Elastic Beanstalk 环境,而应从命令行启动。第一步是.elasticbeanstalk
在项目的根目录下创建一个文件夹,然后在其中创建一个config.yml
如下所示的文件:
branch-defaults:
production:
environment: my-prod
staging:
environment: my-dev
global:
application_name: my_application_name
branch: null
default_ec2_keyname: my_key_pair
default_platform: Docker running on 64bit Amazon Linux
default_region: my_default_region
include_git_submodules: true
instance_profile: null
platform_name: null
platform_version: null
profile: null
repository: null
sc: git
workspace_type: Application
之后,回到项目的根目录并运行:
eb init
eb create my-dev
从现在开始,每个人所做的更改都可以通过运行简单地推送到环境中eb deploy
。
##############################################
我发现更“工业准确”的第二种解决方案是使用 AWS CodePipeline。
这是我遵循的Medium 教程。将 CodePipeline 附加到 git 项目存储库的当前分支后(并且一旦完成上述有关文件config.yml
夹下文件的所有步骤.elasticbeanstalk
),每次 git 推送后,更改将直接在 ELB 环境中可见。
推荐阅读
- html - 我如何在 selenium 中定位/编码以识别属于同一类、html 标记且没有唯一标识符的不同单选按钮?
- android - 如何从一个活动中连接两个不同的片段
- terminal - Hyper.js 3.0.2 终端选项卡标题不起作用
- django - Django 2.2.1:修改 OneToOneField 的关系
- node.js - Node.js 2 需要()
- node.js - 打字稿使用`__dirname`来引用本地文件
- arrays - Powershell for循环抛出“数组索引评估为null”
- java - 集成流和通用处理程序的 Junit 测试用例
- nlp - 如何使用标记化的句子作为 Spacy 的 PoS 标记器的输入?
- javascript - 从 JSON.file 获取嵌套数据的问题