Orion Context Broker 和 Docker - 来自服务器的空回复

Orion Context Broker and Docker - Empty reply from server

我最近开始了涉及 Orion Context Broker 的项目。尝试使用 docker 在 windows 启动它。

https://hub.docker.com/r/fiware/orion/

第一种方法效果不佳,我在使用教程中的原始代码时遇到的错误是:

   ERROR: yaml.parser.ParserError: while parsing a block mapping
   in ".\docker-compose.yml", line 1, column 1
   expected <block end>, but found '<block mapping start>'
   in ".\docker-compose.yml", line 5, column 2

然后我决定继续使用第二种方法,我使用默认参数启动 mongoDB。我让它监听连接并使用 docker 站点的 2A 方式。

   sudo docker run -d --name orion1 -p 1026:1026 fiware/orion

似乎已经启动,因为它在启动时没有返回任何错误。但是,如果我使用:

   curl localhost:1026/version

我没有收到任何响应,它只是冻结并且在 mongoDB 控制台中我没有任何新连接。 docker 容器的地址是正确的。防火墙已关闭。好像没连上,可是运行。如果我想重新启动 orion context broker,它告诉我它已经 运行,所以我停止它,删除 orion1 并可以重新启动它。当我从另一个控制台连接到 运行 mongoDB 时,它显示一个新连接,而当与 Context Broker 连接时则没有。

当我检查 CB 日志时,我得到了

time=Tuesday 24 Oct 21:37:32 2017.378Z | lvl=ERROR | corr=N/A 
trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | 
op=mongoConnectionPool.cpp[152]:mongoConnect |
msg=Database Startup Error (cannot connect to mongo - doing 100 retries  with a 1000 microsecond interval)

关于docker-compose.yml的失败,复制粘贴有时很棘手...我会推荐你​​to download directly from github repository。以下应该有效:

wget https://raw.githubusercontent.com/telefonicaid/fiware-orion/master/docker/docker-compose.yml

关于 Orion docker 连接数据库失败,查看 section 2B in the docker documentation:

sudo docker run -d --name orion1 --link mongodb:mongodb -p 1026:1026 fiware/orion -dbhost mongodb

您似乎缺少 --link mongodb:mongodb 参数(当然,之前需要 运行 一个名为 mongodb 的 MongoDB docker。