Я создаю простое приложение Hello World в Java (на основе Spring), которое я запускаю в AWS через конвейер.
buildspec.yml определяется следующим образом:
version: 0.2
phases:
install:
runtime-versions:
java: openjdk8
build:
commands:
- mvn package
artifacts:
files:
- '**/*'
с appspec.yml следующим образом:
version: 0.0
os: linux
files:
- source: target/helloworld-1.0-SNAPSHOT.jar
destination: /tmp
hooks:
ApplicationStart:
- location: codedeploy/ApplicationStart.sh
timeout: 60
runas: root
Файл codedeploy / ApplicationStart.sh:
#!/usr/bin/env bash
JAR_FILE_HOME='/tmp/helloworld-1.0-SNAPSHOT.jar'
java -jar JAR_FILE_HOME
Как ни странно, развертывание завершается неудачно со следующей ошибкой:
Сценарий в указанном месте: codedeploy / ApplicationStart.sh Запуск от имени пользователя root не выполнен с кодом выхода 127
Выходной журнал:
[stderr] / opt / codedeploy-agent / развертывание-root / 5092b759-ecc4-44cb-859a-9823734abc04 / d-GVQ6R854B / развертывание-архив / codedeploy/ApplicationStart.sh: строка 9: java: команда не найдена
Это кажется очень нелогичным, поскольку я установил java в buildspec.yml.Нужно ли снова устанавливать Java вручную в сценарии ApplicationStart или я делаю что-то еще неправильно?