Разверните несколько пакетов приложений на одном контейнере в vespa - PullRequest
0 голосов
/ 12 сентября 2018

Я скачал примеры приложений vespa из git clone https://github.com/vespa-engine/sample-apps.git. Я создал такое же приложение, как basic-search , которое я назвал location .Теперь я хочу развернуть оба приложения в одном и том же контейнере, используя следующие шаги:

Чтобы развернуть basic-search приложение:

sudo docker run --detach --name vespa1 --hostname vespa-container --privileged --volume $ VESPA_SAMPLE_APPS: / vespa-sample-apps --publish 8080: 8080 vespaengine / vespa

sudo docker exec vespa1 bash -c 'curl --head http://localhost:19071/ApplicationStatus'

sudo docker exec vespa1 bash -c '/ opt / vespa / bin / vespa-deploy подготовить / vespa-sample-apps / basic-search / src / main / application / && / opt / vespa / bin /vespa-deploy activ '

curl -s --head http://localhost:8080/ApplicationStatus

Чтобы развернуть location приложение:

sudo docker run --detach --name vespa2 - имя хоста vespa-container --privileged --volume $ VESPA_SAMPLE_APPS: / vespa-sample-apps --publish 8081: 8081 vespaengine / vespa

sudo docker exec vespa2 bash -c 'curl -head http://localhost:19071/ApplicationStatus'

sudo docker exec vespa2 bash -c '/ opt / vespa / bin / vespa-deploy подготовить / vespa-sample-apps / location / src / main /application / && / opt / vespa / bin / vespa-deploy activ '

curl -s --head http://localhost:8081/ApplicationStatus

Первое приложение успешно развернуто, но во втором я получаю эту ошибку: Команда не выполнена.Каталог или zip-файл не найдены: '/ vespa-sample-apps / location / src / main / application /'

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Чтобы развернуть второе приложение, мне нужно опубликовать его с 8081 | 8080.Поскольку vespa-контейнер работает на 8080, а я пытался запустить его на порту 8081. После запуска с 8081 на localhost и vespa-container на 8080 все работает. Теперь я могу развернуть несколько приложений с несколькими портами.

0 голосов
/ 12 сентября 2018

Чтобы это работало, вам нужно назначить разные порты для всех процессов каждого из приложений, используя концепцию «базового порта».Однако гораздо проще использовать разные контейнеры Docker для разных приложений.Это также обеспечивает изоляцию ресурсов между различными приложениями.

Обратите внимание, что если это действительно разные функции, принадлежащие одному приложению, вы можете настроить несколько отдельных кластеров в одном приложении (в одном и том же services.xml).файл) или, альтернативно, просто добавьте несколько схем и т. д. в одни и те же кластеры.

...