AWS CodeDeploy 罐子
AWS CodeDeploy jar
我想使用 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) 在 EC2 上从 S3 解压 .zip
2) 在特定位置发出 java -jar
?
谢谢
1) 您不需要发出解压缩命令,appspec.yml 中的文件部分用于指定要复制到 ec2(目标)上的文件系统的存档(源)中的文件并将由代码部署代理 RE https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-files.html
完成
2) 创建一个 运行 脚本以在挂钩 ApplicaitonStart 下发出 java -jar 命令
回复 https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html
示例 appspec.yml 基于 os linux:
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 包含在部署包中
我想使用 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) 在 EC2 上从 S3 解压 .zip
2) 在特定位置发出 java -jar
?
谢谢
1) 您不需要发出解压缩命令,appspec.yml 中的文件部分用于指定要复制到 ec2(目标)上的文件系统的存档(源)中的文件并将由代码部署代理 RE https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-files.html
完成2) 创建一个 运行 脚本以在挂钩 ApplicaitonStart 下发出 java -jar 命令 回复 https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html
示例 appspec.yml 基于 os linux:
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 包含在部署包中