在Mac上安装了Docker,并按照以下链接中指定的步骤尝试在Docker上运行Vespa https://docs.vespa.ai/documentation/vespa-quick-start.html
直到第4步我都没有遇到任何问题。我看到在第2步和第3步之后运行的vespa容器返回了200 OK响应。
但是步骤5无法返回200 OK响应。以下是我在终端上运行的命令 curl -s --head http://localhost:8080/ApplicationStatus
我不断得到
curl: (52) Empty reply from server
,只要我不带-s选项运行。
所以我试图查看vespa容器中的侦听端口,但看不到8080的任何内容,但可以看到19071(在步骤3中使用)
➜ ~ docker exec vespa bash -c 'netstat -vatn| grep 8080'
➜ ~ docker exec vespa bash -c 'netstat -vatn| grep 19071'
tcp 0 0 0.0.0.0:19071 0.0.0.0:* LISTEN
以下文档具有与vespa端口相关的信息
https://docs.vespa.ai/documentation/reference/files-processes-and-ports.html
我假设docker运行后端口8080应该处于活动状态(快速启动链接的第2步),并且可以在完成端口映射后在容器外部进行访问。 但是我首先没有看到8080端口在容器内部处于活动状态。 我错过了什么吗?除了快速入门中提到的以外,我还需要执行其他任何步骤吗?仅供参考,我在docker内部安装了Jenkins,并能够通过端口映射访问外部容器。但是不确定为什么它不能与vespa一起使用。我一直在安静的地方尝试,但是没有任何进展。如果我在这里缺少东西,请告诉我。
答案 0 :(得分:4)
您的Docker容器的内存太低,“专用于Docker的最小6GB内存(在Mac上默认为2GB)。”。参见https://docs.vespa.ai/documentation/vespa-quick-start.html
死锁检测器警告和无法从配置服务器获取配置(很可能是oom被杀死)表明您的内存太低。
答案 1 :(得分:2)
我的猜测是您的jdisc容器尚未完成初始化或未正确初始化?您是否尝试查看日志?
docker exec vespa bash -c '/opt/vespa/bin/vespa-logfmt /opt/vespa/logs/vespa/vespa.log'
这应该告诉您是否有问题。准备接收请求时,您会看到类似以下内容的
:[2018-12-10 06:30:37.854] INFO : container Container.org.eclipse.jetty.server.AbstractConnector Started SearchServer@79afa369{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
[2018-12-10 06:30:37.857] INFO : container Container.org.eclipse.jetty.server.Server Started @10280ms
[2018-12-10 06:30:37.857] INFO : container Container.com.yahoo.container.jdisc.ConfiguredApplication Switching to the latest deployed set of configurations and components. Application switch number: 0
[2018-12-10 06:30:37.859] INFO : container Container.com.yahoo.container.jdisc.ConfiguredApplication Initializing new set of configurations and components. Application switch number: 1