我正在使用 Elastic Beanstalk 配置 CodePipeline。Elastic Beanstalk 必须在其 Tomcat 的 webapps 文件夹中部署 war 文件。但它正在 webapps/ROOT 文件夹中部署 war 文件。因此,我在.ebextensions文件夹中创建了以下脚本server-update.config ,以将 war 文件从 webapps/ROOT/ 复制到 webapps 文件夹中。
.ebextensions/server-update.config
container_commands:
copy_file:
command: sudo cp /var/lib/tomcat8/webapps/ROOT/test/* /var/lib/tomcat8/webapps/
leader_only: true
以上代码执行成功。下面是日志。
[2016-04-18T14:06:30.939Z] INFO [1128] - [Application update code-pipeline-1460988338596-MyAppBuild-2d3bd0c0-62bc-4927-bd09-b04ba81e7c03@15/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_SampleEB/Command copy_file] : Starting activity...
[2016-04-18T14:06:30.973Z] INFO [1128] - [Application update code-pipeline-1460988338596-MyAppBuild-2d3bd0c0-62bc-4927-bd09-b04ba81e7c03@15/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_SampleEB/Command copy_file] : Completed activity.
但是 ElasticBeanstalk 在执行 .ebextensions 文件后正在清理 tomcat webapps 文件夹(在内部运行 /opt/elasticbeanstalk/hooks/appdeploy/enact/02clean.sh 时)
+ EB_APP_DEPLOY_BASE_DIR=/var/lib/tomcat8/webapps
+ rm -rf /var/lib/tomcat8/webapps/ROOT /var/lib/tomcat8/webapps/sampleapp.war
我不知道如何配置我的脚本以最终执行。请任何人帮助我满足上述要求。