无法使用AWS CodeDeploy部署Springboot应用程序AWS Ubuntu实例

问题描述 投票:1回答:3

我有一个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

java amazon-web-services spring-boot continuous-integration aws-code-deploy
3个回答
0
投票

codeDeploy以root用户身份执行,因此请尝试检查root用户是否已安装mvn。和ApplicationStart:-位置:start_server.sh超时:300符文:根而不是ubuntu以root身份运行。


0
投票

Maven是一个构建系统。我不建议将其用作部署的一部分。单独构建应用程序(也许在笔记本电脑上),然后使用CodeDeploy复制代码(jar文件等),并运行一些内部管理流程(例如,启动apache服务)。不要在每个部署上都构建应用程序,因为您会看到构建失败将导致部署失败。

正在查看错误:找不到mvn命令

最好在脚本中指定mvn命令的完整路径,例如:

sudo / bin / mvn清洁软件包

注意:请确认路径。


0
投票

使用代码管道创建流程,与代码提交或Github存储库集成以获取代码。使用代码构建来创建必要的构件,并在代码部署中使用构件。代码构建具有用于使用必要工具(例如Java Maven Docker)创建构建环境的选项。

© www.soinside.com 2019 - 2024. All rights reserved.