我想使用AWS CodeDeploy部署jar文件,然后将其放置在EC2上然后从此处运行java -jar
命令。但是我注意到,AWS CodeDeploy仅从S3中提取zip
,tar
和tar.gz`。我在想,我将使用本地jenkins的CLI将.zip文件(包含jar)推送到S3,然后运行另一个CLI命令以启动AWS CodeDeploy,它将从S3中提取.zip。
但是我确实对AWS CodeDeploy的详细信息有疑问:
我可以使用appspec.yml发出两个命令
1)将.zip从EC3解压缩到
2)在特定位置发布java -jar
?
谢谢
答案 0 :(得分:2)
1)您不需要发出解压缩命令,appspec.yml中的files部分用于指定要复制到ec2(目标)上文件系统的归档(源)中的文件。由代码部署代理RE https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-files.html
2)创建一个运行脚本以在钩子ApplicaitonStart下发出java -jar命令 RE https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html
基于os linux的示例appspec.yml:
version: 0.0
os: linux
files:
- source: ./
destination: /home/ubuntu/myapp
hooks:
ApplicationStart:
- location: runapp.sh
runas: ubuntu
runapp.sh:
#!/usr/bin/env bash
echo 'Starting my app'
cd '/home/ubuntu/myapp'
java -jar myapp.jar
在此示例中,您将在部署包中包含runapp.sh