0

我有一個Java Maven項目,需要通過自動化CI/CD部署在EC2實例上。 我正在瞄準的過程是,GIT-> Jenkins-> Code Deploy(S3-> EC2部署)。使用jenkins和用於Java項目的AWS代碼部署

Jenkins能夠將我的項目構建到WAR文件中。 但是使用Code deploy Plugin,在Post-build Actions部分中選擇「將應用程序部署到AWS CodeDeploy」時,它只會壓縮工作區中的所有代碼並推送到S3。 問題是我需要一個war文件來部署到EC2實例上的tomcat。

無論如何,我可以通過Codedeploy將由Jenkins創建的WAR發送到EC2? 或者無論如何,我可以壓縮WAR文件,而不是通過Jenkins/codedeploy插件的工作區代碼,然後它被推到S3?

謝謝!

回答

0

是的,你可以使用CodeDeploy將war文件部署到你的EC2實例,如果你通過jenkins在maven中構建它,但你需要創建一個appspec文件和一些腳本來啓動和停止服務。基本上CodeDeploy插件會壓縮war文件,腳本和appspec文件,然後推送到s3進行部署。我們在github上有一個示例項目,請參閱aws-codedeploy-sample-tomcat

+0

我確實看過它,但看起來像使用buildspec.yml。不是用於代碼構建?我只是在代碼部署的情況下試過這個,它創建的zip文件是空的。你能否詳細解釋一下上面的項目是如何壓縮戰爭,腳本和appsec.yml的? – Usmi

+0

如果您只想使用CodeDeploy,則可以忽略buildspec.yml文件(用於CodeBuild)。你需要做的部署是使用appspec.yml文件 – binbinlu