运行 Orion 在 HTTPS 中 docker

Run Orion on docker in HTTPS

你好(抱歉),

我想将 Orion 配置为 docker 中的 运行ning 到 HTTPS 上的 运行。 我采取的步骤:

  1. Download script

  2. 从中生成密钥和证书 (localhost.key/localhost.crt)

  3. 运行 cli 命令contextBroker -https -key /localhost.key -cert /localhost.crt

附加信息:

{
"orion" : {
"version" : "1.13.0-next",
"uptime" : "0 d, 0 h, 15 m, 56 s",
"git_hash" : "95ec3913f20682214891e92a5afbb0122293ffa2",
"compile_time" : "Thu Jun 14 11:03:03 UTC 2018",
"compiled_by" : "root",
"compiled_in" : "bfe336509e64",
"release_date" : "Thu Jun 14 11:03:03 UTC 2018",
"doc" : "https://fiware-orion.readthedocs.org/en/master/"
}
}

输入cli命令后的错误日志:

 lvl=ERROR | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=contextBroker.cpp[382]:pidFile | msg=PID-file '/tmp/contextBroker.pid' found. A broker seems to be running already

更多信息:

root          1  0.0  0.6 383308 13592 ?        Ssl  08:31   0:00 
/usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -dbhost mongo
root        184  0.0  0.0   9096   868 pts/0    S+   08:54   0:00 grep -- 
color=auto contextBroker

问题: 我是不是在处理这个问题时犯了错误,我似乎在使用我的 cli 命令尝试创建另一个 cb 进程时遇到了这样的错误?

更多信息当我 运行 这个命令时:

/usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -dbhost mongo -https 
-key /localhost.key -cert /localhost.cert

我收到这个错误:

time=Friday 15 Jun 09:25:20 2018.271Z | lvl=FATAL | corr=N/A | trans=N/A | 
from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=rest.cpp[1732]:restStart | 
msg=Fatal Error (error starting REST interface)

我知道这个错误是什么意思,因为我看到你已经在多个帖子上回复了这个错误,有 2 个进程正在使用端口,而解决方案正在杀死一个。但是我只从上面的代码中看不到这样的过程。 希望此信息对您有所帮助。

谢谢。

更新 2 个错误:

PID-file '/tmp/contextBroker.pid' found. A broker seems to be running already

按照您的建议删除旧的 pid 解决了这个错误。 然后我使用 运行ning cli 命令继续:

contextBroker -https -key /localhost.key -cert /localhost.crt

然后我查了一下:

ps ax | grep contextBroker

输出:

 1 ?        Ssl    0:00 /usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -dbhost mongo
90 ?        Ss     0:00 contextBroker -https -key /localhost.key -cert /localhost.crt
95 pts/0    S+     0:00 grep --color=auto contextBroker

Netstat 输出:

tcp        0      0 0.0.0.0:1026            0.0.0.0:*               LISTEN   
1/contextBroker
tcp6       0      0 :::1026                 :::*                    LISTEN      
1/contextBroker

有类似问题的人的解决方案。

mongo:
   image: mongo:3.4
   command: --nojournal
orion:
   image: fiware/orion
   volumes:
     - /home/igor/Fiware/Orion/localhost.key:/localhost.key
     - /home/igor/Fiware/Orion/localhost.pem:/localhost.pem 
   links:
     - mongo
   ports:
     - "1026:1026"
   command: -dbhost mongo -https -key /localhost.key -cert /localhost.pem

让我们看看不同的错误:

PID-file '/tmp/contextBroker.pid' found. A broker seems to be running already

这可能有两个原因:

  • 另一个 Context Broker 运行 在同一台机器上使用相同的 PID 文件
  • 另一个 Context Broker 是 运行,它以无序方式停止(例如崩溃),因此它无法在停止前删除 PID 文件

解决方案:

  • 检查该机器上没有其他 Context Broker 在运行(例如 ps ax | grep contextBroker)。有的话杀掉。
  • 删除 /tmp/contextBroker.pid 文件(如果存在)。

Fatal Error (error starting REST interface)

此错误通常是由于另一个进程正在使用与 Orion 相同的端口(默认值:1026)。检查没有其他进程正在使用它,例如使用 netstat。这通常是由于先前已启动另一个 Orion 实例,但也可能是其他原因造成的。