我有一个Spring启动应用程序,无法使用AWS Code Deploy部署到AWS Ubuntu实例
这是appspec.yml
version: 0.0
os: linux
files:
- source: /
destination: /opt/ubuntu/server
permissions:
- object: /
pattern: "**"
owner: ubuntu
group: ubuntu
hooks:
ApplicationStop:
- location: stop_server.sh
timeout: 20
runas: root
ApplicationStart:
- location: start_server.sh
timeout: 300
runas: ubuntu
stop_server.sh文件
#!/usr/bin/env bash
# Kill Java process
# Determine the pid
PID=`ps -C java -o pid=`
kill -9 $PID
start_srver.sh文件
#!/usr/bin/env bash
cd /opt/ubuntu/server
rm -rf target/*
sudo mvn clean package
sudo mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8080' > /dev/null 2> /dev/null < /dev/null &
CodeDeploy卡在安装阶段,我得到的错误是找不到mvn命令
我登录到实例并检查了mvn命令,但工作正常,但是使用codedeploy代理时,它不起作用
我已经设置了〜/ .profile和〜/ .bashrc文件的路径,但仍然无法正常工作
存储库的GitHub位置为Repository Link
codeDeploy以root用户身份执行,因此请尝试检查root用户是否已安装mvn。和ApplicationStart:-位置:start_server.sh超时:300符文:根而不是ubuntu以root身份运行。
Maven是一个构建系统。我不建议将其用作部署的一部分。单独构建应用程序(也许在笔记本电脑上),然后使用CodeDeploy复制代码(jar文件等),并运行一些内部管理流程(例如,启动apache服务)。不要在每个部署上都构建应用程序,因为您会看到构建失败将导致部署失败。
正在查看错误:找不到mvn命令
最好在脚本中指定mvn命令的完整路径,例如:
sudo / bin / mvn清洁软件包
注意:请确认路径。
使用代码管道创建流程,与代码提交或Github存储库集成以获取代码。使用代码构建来创建必要的构件,并在代码部署中使用构件。代码构建具有用于使用必要工具(例如Java Maven Docker)创建构建环境的选项。