После чтения "здания привязывают учебное руководство" и проверку документации, других учебных руководств и некоторых примеров, я все еще смущен тем, как раздел команды в .yaml для работ снимков, или лучше сказал, как я могу вызвать снимок.
Некоторые учебные руководства просто используют "команду: пример" и выполненный снимок, вводящий "пример", другое использование "команда: мусорное ведро/пример" или даже "команда: bin/example.sh".
Я понимаю, что они указывают на папку, где исполняемый файл расположен, таким образом, я сделал то же со своим .yaml, пытающимся достигнуть и выполнить банку, кто выполняет моего демона:
apps:
daemon-test:
command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
restart-condition: always
daemon: simple
Но когда тип "тест демона" или "name-snap.daemon-test" я получаю "команду, не найденную" подсказка. Движение далее, чем решение моей проблемы (который это было бы большой), у меня есть некоторые вопросы:
P.D: я указываю правильно на свою исполняемую банку? Я также пытался добавить маршрут к/prime/jar/папке, но ничему.
Строго заключенные снимки, обычно не может 'видеть' папки вне самого снимка и некоторые другие местоположения. Существуют envionment переменные , которые указывают на самые важные.
, Когда снимок запускается, путь является установкой правильно, чтобы это нашло двоичные файлы расположенными в $SNAP/bin, однако это не будет видеть вещи вне снимка, как, например (в Вашем случае) среда выполнения Java. В этом экземпляре необходимо связать соответствующий jvm для приложения.
Это могло быть достигнутым with:-
stage-packages:
- openjdk-8-jre-headless
или путем добавления части, содержащей JRE Oracle, распакованный и положенный на relavent место. Например, если бы у Вас была папка, названная jre1.8.0_112
содержащий JRE Oracle, то у Вас могла бы быть часть такой as:-
jbidwatcher:
plugin: dump
source: ./
organize:
'jre1.8.0_112': usr/lib/jvm/
Затем, Вы могли установить export JAVA_HOME=$SNAP/usr/lib/jvm
перед осуществлением Вашей программы. Вы могли бы также хотеть иметь сценарий 'обертки', которому заглядывают $SNAP/bin
, который настраивает вышеупомянутое и другие переменные среды, требуемые Вашим приложением. Это могло также содержать долгую командную строку, как this:-
apps:
myjavaapp:
command: $SNAP/usr/bin/launch_myjavaapp
plugs:
- network
Со строкой в части выше для помещения того сценария в правильный place:-
jbidwatcher:
plugin: dump
source: ./
organize:
'jre1.8.0_112': usr/lib/jvm/
'launch_myjavaapp': usr/bin/