Что корректный путь состоит в том, чтобы установить команду выполнения для Снимка?

После чтения "здания привязывают учебное руководство" и проверку документации, других учебных руководств и некоторых примеров, я все еще смущен тем, как раздел команды в .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" я получаю "команду, не найденную" подсказка. Движение далее, чем решение моей проблемы (который это было бы большой), у меня есть некоторые вопросы:

  • Почему папка мусорного ведра в "команде"? автоматически генерируется snapcraft? действительно ли это обязательно в некоторых конкретных случаях?
  • Почему иногда Вам нужен .sh, и другие просто должны написать имя для выполнения снимка?
  • Когда необходимо записать просто слово в команде и когда необходимо записать name-snap.command-word?
  • Когда необходимо указать на "исполняемый файл" и когда не нужно, просто слово?

P.D: я указываю правильно на свою исполняемую банку? Я также пытался добавить маршрут к/prime/jar/папке, но ничему.

1
задан 28 April 2017 в 14:26

1 ответ

Строго заключенные снимки, обычно не может 'видеть' папки вне самого снимка и некоторые другие местоположения. Существуют 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/

3
ответ дан 7 December 2019 в 12:33

Другие вопросы по тегам:

Похожие вопросы: