0

我已经从 git clone https://github.com/vespa-engine/sample-apps.git下载了示例 vespa 应用程序。我创建了相同的应用程序,例如我命名为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 准备 /vespa-sample-apps/basic-search/src/main/application/ && /opt/vespa/bin/vespa-deploy activate'

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/'

4

2 回答 2

1

要部署第二个应用程序,我需要使用 8081|8080 发布它。因为 vespa-container 在 8080 上运行,而我试图在 8081 端口上运行。在 localhost 上使用 8081 并在 8080 上使用 vespa-container 运行后,它可以工作。现在我可以使用多个端口部署多个应用程序。

于 2018-09-12T10:51:39.023 回答
0

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

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

于 2018-09-12T08:58:10.960 回答