解决 OMV 安装 onlyoffice 服务时启动错误
OMV 也玩了有一年了,多数服务都是用 Docker 来安装的,比如 Nextcloud、transmission 等等,期间也遇到过不少坑。近期的一个坑是安装 Onlyoffice-DocumentServer 碰到的,本来是希望给 Nextcloud 提供简单的在线编辑功能,但是陷入这个坑中无法自拔,断断续续也折腾了好长一段时间。问题解决后,发现其实挺简单的,就像福尔摩斯所说:
Omne ignotum pro magnifico.
—— Sherlock Holmes
Everything becomes commonplace by explanation.
—— Doctor Watson.
怎么掉进坑里的
我用的是官方的 Docker 镜像,按照页面上简单的流程安装并启动,但是 Docker 内服务报错了:
postgresql
启动失败
1 |
|
这里有个临时的解决方案,修改镜像中的
/etc/postgresql/10/main/postgresql.conf
文件。把listen_addresses = localhost
改成listen_addresses = '*'
通过以上临时修复方案,postgresql
正常启动了。
Nodejs resolve 错误
1 |
|
看着也是跟 localhost
有关,所以定位到解析问题,也谷歌了一圈,还是没找到解决方案。
后面试着在 github 上面提了个 issue,看看能不能找到解决方案。官方维护的哥们 ShockwaveNN 也是相当热情,虽然没接触过 OMV,还是帮忙在虚拟机上面安装并跑通了,一来一回也花了他很多时间。
可惜的是他没问题,我自己又折腾一阵,还一度怀疑是我路由器导致的解析问题,但是最后碍于不好排查,最终还是放弃了,并关闭了 issue。
爬出坑的方法
从折腾到放弃,停滞了也有一周的时间了,突然又觉得不甘心,再回来试一下。皇天不负有心人啊,终于让我碰到了死老鼠,还真是 resolve 的问题。但是跟路由器、环境什么的都没关系,是因为镜像文件 /etc/hosts
权限有问题,导致 postgresql
、node
读取不到绑定信息,无法解析 localhost
。
问题找到了就简单了,只要想办法在启动的时候把权限 600
改成 644
就完事了。
额,当我没说简单两个字,OMV 的 Docker-GUI 又让我折腾了好一阵,最后通过修改镜像的 entrypoint 解决了问题。
镜像原来的 entrypoint
是:
1 |
|
修改成:
1 |
|
结语
之所以问题一直找不到妥善的解决方案,都是因为查找问题的方向错了。虽然一开始就定位到解析问题,但是自己在 win10 上试过镜像能正常启动,所以就以为是系统的关系,一直往 omv
、onlyoffice
、postgresql
等关键信息去找问题。
最后找到解决方案也是精简了这些信息后,直接找的 resolve
,网上有人提到是因为 /etc/hosts
的权限问题。
所以,下次找不到问题的时候,可以适当的扩大范围搜索,再一步步缩小,不能一开始就局限于自己的预设。
不过我最终也不知道到底是因为什么引起的文件权限问题。
自由转载-非商用-禁止演绎-保持署名 (CC BY-NC-ND 4.0)