我是 codepipeline 新手,无法找到如何配置 Codedeploy 以在 Elastic beanstalk 中的单个 zip 文件中部署多个 war。我可以通过 AWS Mangement 控制台使用 codepipeline 将单一战争成功部署到 Elastic beanstalk 中。但我的要求是在一个 zip 文件中有两个 war 文件,需要将其部署在 Elastic beanstalk 中。
创建了两个源:Src1 和 Src2
为主源 Src1 创建了 buildspec.yml,并且能够使用多个输入工件创建两个工件使用此。
我的 builspect.yml 有以下几行。
artifacts:
files:
- '**/*'
secondary-artifacts:
artifact1:
base-directory: $CODEBUILD_SRC_DIR_source1
files:
- ROOT.war
artifact2:
base-directory: $CODEBUILD_SRC_DIR_source2
files:
- Support.war
问题 1)现在在 Codedeploy 中,输入工件显示选择这两个(ROOT.war 或 Support.war)之一的选项。我看不到同时选择两场战争的选项。我怎样才能同时部署两个战争到codepipeline中的elastic beanstalk?
我通过将 support.war 移动到主要源位置来做到这一点。 CodeBuild 将主要源位置的所有文件构建为输出工件。所以我更新了 buildspec.file 如下
phases:
pre_build:
commands:
- echo pre_build
install:
runtime-versions:
java: corretto8
post_build:
commands:
- mvn clean install
- mv target/ROOT.war ROOT.war
- cd $CODEBUILD_SRC_DIR_support
- mvn clean install
- mv target/support.war $CODEBUILD_SRC_DIR/support.war
artifacts:
files:
- '**/*'