为ec2部署创建appspec.yml文件



我已经创建了一个spring-boot应用程序,可以在AWS EC2实例上启动,它运行良好,但是,我现在想使用CodeDeploy自动化这个过程,所以我不必使用puTTy连接到实例,下载新的jar文件并手动运行它。

我的问题是,我不知道在appspec.yml文件中写什么才能:

  • 停止应用程序
  • 下载S3存储桶中.zip文件中的新.jar文件(相当于#wget-Njarlink(
  • 运行应用程序(相当于#java-jarjarname(

我知道我需要一些脚本,但是,我不知道在哪里可以找到合适的脚本。

干杯,Kris

想清楚了,我的appspec.yml文件如下所示:

version: 0.0
os: linux
files:
- source: /artifact_name.jar
destination: /tmp
hooks:
ApplicationStop:
- location: stop-process.sh
timeout: 180
runas: root
ApplicationStart:
- location: start-process.sh
timeout: 180
runas: root

stop-process.sh:

#!/bin/bash
ps -ef | grep artifact_name.jar | grep -v grep | awk '{print $2}' | xargs kill

start-process.sh:

#!/bin/bash
java -jar /tmp/artifact_name.jar > /dev/null 2> /dev/null < /dev/null &

还包括buildspec.yml:中的两个脚本工件

version: 0.2
phases:
build:
commands:
- mvn clean install
artifacts:
files:
- target/artifact_name.jar
- appspec.yml
- scripts/start-process.sh
- scripts/stop-process.sh
discard-paths: yes

最新更新