Не удалось развернуть приложение Springboot AWS Экземпляр Ubuntu с использованием AWS CodeDeploy - PullRequest
1 голос
/ 26 января 2020

У меня есть загрузочное приложение Spring, которое я не могу развернуть на AWS экземпляре Ubuntu, используя AWS Развертывание кода

Это appspe c .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 file

#!/usr/bin/env bash

# Kill Java process

# Determine the pid
PID=`ps -C java -o pid=`

kill -9 $PID

start_srver. sh file

#!/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 и ~ / .bashr c файлу, но все еще не работает

GitHub Расположение репозитория Ссылка на репозиторий

Ответы [ 4 ]

0 голосов
/ 01 февраля 2020

Я установил агент развертывания maven и кода как пользователь root в EC2 Ubuntu Instance, но все равно получаю команду mvn не найдено .

Я вошел в систему и попытался проверьте, работает ли команда mvn, но я не могу понять, почему команда mvn не работает с процессом развертывания кода.

Нужна помощь по этому вопросу

это appspe c .yml file

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 file

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

stop_server. 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
0 голосов
/ 27 января 2020

Maven - это система сборки. Я не рекомендую использовать его как часть развертывания. Создайте приложение отдельно (возможно, на своем ноутбуке) и используйте CodeDeploy для копирования кода (файл jar et c), а также для запуска некоторых служебных процессов (например, запуска службы apache). Не создавайте свое приложение при каждом развертывании, поскольку вы видите, что сбой сборки приведет к сбою развертывания.

Просмотр ошибки: команда mvn не найдена

Возможно, лучше указать полное путь к команде mvn в ваших сценариях, например:

чистый пакет sudo / bin / mvn

Примечание. Пожалуйста, подтвердите путь.

0 голосов
/ 31 января 2020

Используйте Code Pipeline для создания потока, интегрируйте с Code Commit или Github repo для получения кода. Используйте Code Build для создания необходимого артефакта и используйте артефакт в Code Deploy. Code Build имеет опции для создания среды сборки с необходимыми инструментами, например, Java Maven Docker.

0 голосов
/ 26 января 2020

codeDeploy выполняется как пользователь root, поэтому попробуйте проверить, установлен ли у пользователя root mvn. и ApplicationStart: - location: start_server. sh тайм-аут: 300 runas: root вместо Ubuntu запускается как root.

...