簡體   English   中英

無法使用 AWS CodeDeploy 部署 Springboot 應用程序 AWS Ubuntu 實例

[英]Not able to deploy Springboot application AWS Ubuntu instance using AWS CodeDeploy

我有一個 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 位置是存儲庫鏈接

codeDeploy 以 root 用戶身份執行,因此請嘗試檢查 root 用戶是否安裝了 mvn。 和 ApplicationStart: - location: start_server.sh timeout: 300 runas: root 而不是 ubuntu 以 root 身份運行。

Maven 是一個構建系統。 我不建議將其用作部署的一部分。 單獨構建應用程序(可能在您的筆記本電腦上)並使用 CodeDeploy 復制代碼(jar 文件等),並運行一些內務處理(例如啟動 apache 服務)。 不要在每次部署時構建您的應用程序,因為您可以看到構建失敗將導致部署失敗。

查看錯誤:未找到 mvn 命令

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

sudo /bin/mvn 清理包

注意:請確認路徑。

使用 Code Pipeline 創建流程,與 Code Commit 或 Github repo 集成以獲取代碼。 使用 Code Build 創建必要的工件並在 Code Deploy 中使用該工件。 Code Build 可以選擇使用必要的工具創建構建環境,例如 Java Maven Docker。

我在 EC2 Ubuntu 實例中以 root 用戶身份安裝了 maven 和代碼部署代理,但仍然找不到 mvn 命令

我登錄到實例並嘗試檢查它正在工作的 mvn 命令,但我無法理解為什么 mvn 命令不能與代碼部署過程一起工作。

需要這方面的幫助

這是appspec.yml文件

version: 0.0
os: linux
files:
  - source: /
    destination: /opt/root/server

permissions:
  - object: /
    pattern: "**"
    owner: root
    group: root

hooks:
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 60
      runas: root
  ApplicationStart:
    - location: scripts/start_server.sh
      timeout: 60
      runas: root

start_server.sh 文件

mvn clean package
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8080' > /dev/null 2> /dev/null < /dev/null &

停止服務器.sh

#!/usr/bin/env bash

# Kill Java process

# Determine the pid
echo "killing process starts"
PID=`ps -C java -o pid=`

if [ -n "$PID" ]; then
    echo "killing process"
    kill -9 $PID
else
    echo "empty"
fi

cd /opt
rm -rf root

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM