如何將.platform目錄包含在檔案的工件中buildspec.yml?
背景:我想更改client_max_body_sizeElastic Beanstalk 上的 nginx 設定。我正在使用 CodePipeline 在 Elastic Beanstalk 上部署我的戰爭檔案。
下面是我的回購目錄結構:
├── .checkstyle
├── .gitignore
├── .platform
│ ├── hooks
│ │ └── postdeploy
│ │ └── 01_nginx.sh
│ └── nginx
│ └── conf.d
│ └── proxy.conf
├── README.md
├── appspec.yml
├── buildspec.yml
├── mvnw
├── mvnw.cmd
├── nginx.sh
├── pom.xml
└── src
├── .platform
│ └── nginx
│ └── conf.d
│ ├── hooks
│ │ └── postdeploy
│ │ └── 01_nginx.sh
│ └── proxy.conf
├── main
│ ├── java
│ │ └── com
│ │ └── k12
│ │ └── caap
│ │ └── service
│ │ └── ServiceNAME
編輯:檔案buildspec.yml中不包括“.platform”目錄artifact.zip。該proxy.conf檔案未添加到服務器上。
buildspec.yml:
version: 0.2
phases:
install:
runtime-versions:
java: corretto11
pre_build:
commands:
- pip3 install awscli --upgrade --user
build:
commands:
- mvn clean compile package
artifacts:
files:
- target/*.war
- '.platform'
discard-paths: yes
以下是來自 EC2 /var/log/eb-engine.log 的日志
[INFO] Executing instruction: RunAppDeployPostDeployHooks
[INFO] Executing platform hooks in .platform/hooks/postdeploy/
[INFO] The dir .platform/hooks/postdeploy/ does not exist
[INFO] Finished running scripts in /var/app/current/.platform/hooks/postdeploy
01_nginx.sh 腳本的內容
echo "client_max_body_size 20M;" > /etc/nginx/conf.d/proxy.conf
systemctl restart nginx.service
uj5u.com熱心網友回復:
存在三個錯誤配置和兩個改進技巧:
在您的
buildspec.yml中,您已經設定discard-paths: yes了工件。這意味著所有檔案都將直接放在工件中,子目錄將丟失。因此,你的 nginx 配置proxy.conf不會在.platform/nginx/conf.d/proxy.confbut中./proxy.conf。這就是 beanstalk 部署找不到它的原因。只需洗掉該選項
discard-paths: yes并將您的戰爭檔案復制到根目錄(并相應地更改工件檔案路徑)。這樣,您的戰爭檔案將與以前一樣位于同一位置。您已經給出了工件檔案路徑
'.platform'(帶引號)。根據buildspec 的檔案,它需要是.platform/**/*(不帶引號)。同樣,您必須將檔案
appspec.yml以及buildspec.ymlCodeDeploy 或 Beanstalk 需要的任何內容添加到工件檔案路徑中。我不確定你為什么有另一個
src/.platform目錄。請記住,它的結構是錯誤的,因為它的hooks目錄位于.platform/nginx/conf.d而不是.platform. 在這個路徑下,也不會被豆莖發現。您只將腳本
01_nginx.sh放在目錄中hooks,該目錄用于部署掛鉤。您可能還想將其放入confighooks,請參閱有關 beanstalk 鉤子的檔案。目前,如果beantalk僅在代碼部署期間由于配置更改而需要再次部署,腳本將不會運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482357.html
上一篇:使用powershell7foreach-object-parallel和AWSS3模塊下載S3檔案夾內容時出錯
