如何在 ElasticBeanstalk 中提取 AWS CodeBuild 的输出 zip?
How can I get AWS CodeBuild's outputted zip extracted in ElasticBeanstalk?
我正在尝试让 AWS CodePipeline 与 S3 源代码、CodeBuild 和 Elastic Beanstalk(nodejs 环境)一起工作
我的问题在 CodeBuild 和 Beanstalk 之间。
我让 CodeBuild 通过工件输出最终 nodeJS 应用程序的 zip 文件。这是我的 CodeBuild buildspec.yml
version: 0.1
phases:
install:
commands:
- echo Installing Node Modules...
- npm install -g mocha
- npm install
post_build:
commands:
- echo Performing Test
- npm test
- zip -r app-api.zip .
artifacts:
files:
- app-api.zip
当我手动 运行 CodeBuild 时,它成功地将 zip 放入 S3。当我 运行 CodePipeline 时,它将 zip 放在 /var/app/current 中的每个 Elastic Beanstalk 实例上作为 app-api.zip
我想要的是将 app-api.zip 提取为 /var/app/current。就像通过 Elastic Beanstalk 控制台界面手动部署一样。
首先,快速解释一下。 CodePipeline 将您指定为工件的任何文件发送到 Elastic Beanstalk。在您的情况下,您要发送 app-api.zip
您可能想要做的是发送所有文件,但不将它们打包成 ZIP。
让我们将您的 buildspec.yml
更改为不创建 app-api.zip
,而是将原始文件发送到 CodePipeline。
version: 0.1
phases:
install:
commands:
- echo Installing Node Modules...
- npm install -g mocha
- npm install
post_build:
commands:
- echo Performing Test
- npm test
# - zip -r app-api.zip . **<< Remove this line**
artifacts:
files:
- '**/*'
# Replace artifacts/files with the value shown above
我正在尝试让 AWS CodePipeline 与 S3 源代码、CodeBuild 和 Elastic Beanstalk(nodejs 环境)一起工作
我的问题在 CodeBuild 和 Beanstalk 之间。
我让 CodeBuild 通过工件输出最终 nodeJS 应用程序的 zip 文件。这是我的 CodeBuild buildspec.yml
version: 0.1
phases:
install:
commands:
- echo Installing Node Modules...
- npm install -g mocha
- npm install
post_build:
commands:
- echo Performing Test
- npm test
- zip -r app-api.zip .
artifacts:
files:
- app-api.zip
当我手动 运行 CodeBuild 时,它成功地将 zip 放入 S3。当我 运行 CodePipeline 时,它将 zip 放在 /var/app/current 中的每个 Elastic Beanstalk 实例上作为 app-api.zip
我想要的是将 app-api.zip 提取为 /var/app/current。就像通过 Elastic Beanstalk 控制台界面手动部署一样。
首先,快速解释一下。 CodePipeline 将您指定为工件的任何文件发送到 Elastic Beanstalk。在您的情况下,您要发送 app-api.zip
您可能想要做的是发送所有文件,但不将它们打包成 ZIP。
让我们将您的 buildspec.yml
更改为不创建 app-api.zip
,而是将原始文件发送到 CodePipeline。
version: 0.1
phases:
install:
commands:
- echo Installing Node Modules...
- npm install -g mocha
- npm install
post_build:
commands:
- echo Performing Test
- npm test
# - zip -r app-api.zip . **<< Remove this line**
artifacts:
files:
- '**/*'
# Replace artifacts/files with the value shown above