Новинка в облачной индустрии, использующая пакет сборки java для распространения zip-архива приложения java. Он правильно определяет сценарий запуска, но когда сценарий запуска доходит до точки, в которой необходимо запустить jvm, я получаю эту ошибку:
bash: java: команда не найдена
Очевидно, «java» отсутствует на пути оболочки во время выполнения скрипта, и я нигде не нахожу определения JAVA_HOME.
Какой путь использовать для запуска приложений Java? Где это задокументировано?
ЛОЖНАЯ ТРЕВОГА
Большое спасибо @DanielMikusa за то, что он указал, что JAVA_HOME действительно установлен, даже в довольно старой версии пакета сборки, который использовался. Здесь нечего смотреть.
ИЗМЕНИТЬ №1
Мне удалось выяснить, что при запуске стартового скрипта jre находится в $PWD/.buildpack-java/oracle_jre
. Но это не может быть тем, что я должен использовать для указания пути к JAVA_HOME
, не так ли? Похоже, что это местоположение полностью зависит от текущей реализации пакета сборки Java. Похоже, что либо папка bin jre должна находиться в пути процесса запуска сценария, либо перед запуском сценария запуска должна быть установлена переменная среды или другая конфигурация, чтобы я мог использовать это значение для поиска исполняемого файла java.
ИЗМЕНИТЬ №2
Ниже приведен вывод во время операции cf push:
PS E:\dev\hoobajoob\myproject\build\distributions> cf push -p .\my-service-1.0.0.zip my-service
Using manifest file E:\dev\hoobajoob\myproject\build\distributions\manifest.yml
Creating app my-service in org DEV / space dev as [email protected]...
OK
Creating route my-service.cflab.dctmlabs.com...
OK
Binding my-service.cflab.dctmlabs.com to my-service...
OK
Uploading my-service...
Uploading app files from: C:\Users\hoobajoob\AppData\Local\Temp\unzipped-app384867239
Uploading 9.7M, 9390 files
Done uploading
OK
Starting app my-service in org DEV / space dev as [email protected]...
Downloading oracle_buildpack_151...
Downloading binary_buildpack...
Downloading go_buildpack...
Downloading python_buildpack...
Downloading java-buildpack-offline-v3-19-2...
Downloaded java-buildpack-offline-v3-19-2
Downloading java-buildpack-offline-4-7...
...<more downloads>
Creating container
Successfully created container
Downloading app package...
Downloaded app package (53.1M)
Staging...
-----> Java Buildpack Version: v3.5.1 (offline) | https://github.com/cloudfoundry/java-buildpack.git#3abc3db
-----> Downloading Oracle JRE 1.8.0_112 from http://127.0.0.1/oracle-jre/trusty/x86_64/jre-8u112-linux-x64.tar.gz (found
in cache)
Expanding Oracle JRE to .java-buildpack/oracle_jre (2.3s)
-----> Downloading Open JDK Like Memory Calculator 2.0.1_RELEASE from https://download.run.pivotal.io/memory-calculator/
trusty/x86_64/memory-calculator-2.0.1_RELEASE.tar.gz (found in cache)
Memory Settings: -Xms2304M -XX:MetaspaceSize=314572K -Xss1M -Xmx2304M -XX:MaxMetaspaceSize=314572K
-----> Downloading Spring Auto Reconfiguration 1.10.0_RELEASE from https://download.run.pivotal.io/auto-reconfiguration/
auto-reconfiguration-1.10.0_RELEASE.jar (found in cache)
Exit status 0
Staging complete
Uploading droplet, build artifacts cache...
Uploading droplet...
Uploading build artifacts cache...
Uploaded build artifacts cache (108B)
Uploaded droplet (120.5M)
Uploading complete
Destroying container
Successfully destroyed container
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
1 of 1 instances running
App started
OK
App my-service was started using this command `CALCULATED_MEMORY=$($PWD/.java-buildpack/oracle_jre/bin/java-buildpack-memory-calculator-2.0.1_RELEASE -memorySizes=metaspace:64m.. -memoryWeights=heap:75,metaspace:10,native:10,stack:5 -memoryInitials=heap:100%,metaspace:100% -totMemory=$MEMORY_LIMIT) && JAVA_HOME=$PWD/.java-buildpack/oracle_jre JAVA_OPTS="-Djava.io.tmpdir=$TMPDIR -XX:OnOutOfMemoryError=$PWD/.java-buildpack/oracle_jre/bin/killjava.sh $CALCULATED_MEMORY" exec $PWD/my-service-1.0.0/bin/launch`
using the java buildpack to push a zip distribution of a java app
Вы развертываете пакет сборки Java или приложение Java? - person K.AJ   schedule 10.01.2018If it has a main() method, then it can be run as self executable jar
. Это означает, что если вы можете запускать локально какjava -jar <jarname>
, вы можете отправить архив в pcf и запустить его там. Ознакомьтесь с советами. Если это не веб-доступ, подавите создание маршрута. - person K.AJ   schedule 10.01.2018cf push -b <buildpack-name>
вместо того, чтобы полагаться на автоматическое обнаружение, либо это, либо переключите порядок ваших сборочных пакетов, чтобы более свежий был выше в списке. - person Daniel Mikusa   schedule 12.01.2018JAVA_HOME
устанавливается в команде:JAVA_HOME=$PWD/.java-buildpack/oracle_jre
. Или вы вручную выставили команду запуска? - person Daniel Mikusa   schedule 12.01.2018