在vespa的同一容器上部署多个应用程序包

时间:2018-09-12 06:34:01

标签: docker bigdata vespa

我已经从git clone https://github.com/vespa-engine/sample-apps.git下载了示例vespa应用程序。我已经创建了相同的应用程序,例如 basic-search ,将其命名为 location 。现在,我要使用以下步骤将两个应用程序部署在同一容器上:

要部署基本搜索应用程序:

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 prepare / vespa-sample-apps / basic-search / src / main / application / && / opt / vespa / bin / vespa-deploy激活”

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

要部署位置应用程序:

sudo docker run --detach --name vespa2 --hostname 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 prepare / vespa-sample-apps / location / src / main / application / && / opt / vespa / bin / vespa-deploy Activate'

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

第一个应用程序已成功部署,但第二个应用程序却出现此错误:命令失败。找不到目录或zip文件:'/ vespa-sample-apps / location / src / main / application /'

2 个答案:

答案 0 :(得分:1)

要部署第二个应用程序,我需要将其发布为8081 | 8080。因为vespa-container运行在8080上,而我试图在8081端口上运行。在本地主机上使用8081和8080在vespa-container上运行之后,现在我能够部署具有多个端口的多个应用程序。

答案 1 :(得分:0)

要进行此工作,您需要使用“基本端口”概念为每个应用程序的所有进程分配不同的端口。但是,对于不同的应用程序使用不同的Docker容器要简单得多。这也提供了不同应用程序之间所需的资源隔离。

请注意,如果属于同一应用程序的功能确实不同,则可以在同一应用程序中(在同一services.xml文件中)设置多个单独的集群,或者仅将多个模式等添加到同一集群中。