docker - 在 vespa 的同一个容器上部署多个应用程序包
问题描述
我已经从 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/'
解决方案
要部署第二个应用程序,我需要使用 8081|8080 发布它。因为 vespa-container 在 8080 上运行,而我试图在 8081 端口上运行。在 localhost 上使用 8081 并在 8080 上使用 vespa-container 运行后,它可以工作。现在我可以使用多个端口部署多个应用程序。
推荐阅读
- reactjs - Axios React/Redux - 使用 thunk 动作创建器时不触发?
- node.js - 请求的资源上不存在“Access-Control-Allow-Origin”标头。NodejS Express
- tcl - Tcl如何将参数传递给proc
- python - X 轴标签在 Pandas 的 Pivot Dataframe 图中不可见
- vue.js - Vuejs 严格模式 - 错误:[vuex] 不要在突变处理程序之外改变 vuex 存储状态。我确实已经正确使用了突变
- c# - 服务器端 Blazor 中的 Google 身份验证不起作用
- amazon-web-services - AWS CDK - 云观察
- javascript - 在不刷新页面的情况下动态更改值
- python - 如何合并这两个正则表达式?
- java - 尝试部署 Presto 并且当我尝试访问控制台时页面不会加载