我已经从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 /'
答案 0 :(得分:1)
要部署第二个应用程序,我需要将其发布为8081 | 8080。因为vespa-container运行在8080上,而我试图在8081端口上运行。在本地主机上使用8081和8080在vespa-container上运行之后,现在我能够部署具有多个端口的多个应用程序。
答案 1 :(得分:0)
要进行此工作,您需要使用“基本端口”概念为每个应用程序的所有进程分配不同的端口。但是,对于不同的应用程序使用不同的Docker容器要简单得多。这也提供了不同应用程序之间所需的资源隔离。
请注意,如果属于同一应用程序的功能确实不同,则可以在同一应用程序中(在同一services.xml文件中)设置多个单独的集群,或者仅将多个模式等添加到同一集群中。