Добавьте Java в Python Flask Cloud Foundry

Мне нужно запустить команду java из приложения python flask, которое развернуто с помощью cf. Как мы можем сделать среду выполнения java доступной для этого приложения python flask.

Я пытался использовать multi-buildpack, но java_buildpack ожидает выполнения какой-то jar или war при развертывании приложения.

Любой подход, который сделает java доступным для приложения python flask?


person nishith    schedule 09.03.2018    source источник


Ответы (2)


Последний пакет сборки в цепочке пакетов сборки отвечает за определение команды для запуска вашего приложения, поэтому пакет сборки Java ожидает выполнения JAR/WAR.

Сборочный пакет Java на момент написания этой статьи не содержит сценария supply, поэтому его можно запустить только как последний сборочный пакет при использовании поддержки нескольких сборочных пакетов. Похоже, что в какой-то момент в будущем пакет сборки Java предоставит скрипт supply, но он все еще разрабатывается здесь.


На данный момент вы можете использовать apt-buildpack и установить JRE/JDK, который способ.

Для этого добавьте файл с именем apt.yml в корень папки вашего проекта. В этом файле поместите следующее:

---
packages:
- openjdk-8-jre
repos:
- deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu trusty main
keys:
- https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xEB9B1D8886F44E2A

Это укажет пакету сборок apt добавить PPA для Ubuntu Trusty, где мы можем получить последнюю версию openjdk8. Это устанавливается под /home/vcap/deps/0, что помещает исполняемый файл java в /home/vcap/deps/0/lib/jvm/java-8-openjdk-amd64/bin/java.

Примечание. К сожалению, двоичный файл java не находится на пути из-за того, как Ubuntu использует update-alternatives, и мы не можем использовать этот инструмент, чтобы поместить его на путь в контейнере приложения CF, потому что у нас нет корневой доступ.

После настройки вы будете следовать обычным инструкциям. для использования нескольких пакетов сборки.

$ cf push YOUR-APP --no-start -b binary_buildpack
$ cf v3-push YOUR-APP -b https://github.com/cloudfoundry/apt-buildpack#v0.1.1 -b python_buildpack

Примечание. Процесс отправки с использованием нескольких сборочных пакетов, скорее всего, изменится в будущем, и v3-push, который в настоящее время является экспериментальным, исчезнет.

Примечание. В приведенном выше примере жестко закодирована версия v0.1.1 сборочного пакета apt. Вам следует использовать последнюю стабильную версию, которую вы можете найти здесь. Использование ветки master не рекомендуется.

person Daniel Mikusa    schedule 10.03.2018

Одним из способов достижения вашей цели по объединению Java и Python может быть контекстная маршрутизация. У меня есть пример объединения Python и Node.js, но подход тот же .

По сути, у вас есть второе приложение, обслуживающее один или несколько путей домена/URI.

person data_henrik    schedule 09.03.2018