出于测试目的,我想在Jelastic环境中在线安装Collabora。
我正在尝试遵循以下基本步骤:https://www.collaboraoffice.com/code/quick-tryout-nextcloud-docker/
首先,我使用链接中给出的docker镜像配置拓扑。
我转到给定的URL后成功安装了下一个云。
然后按照说明中的说明添加变量extra_params=--o:ssl.enable=false
:
它将端口9980与公共端口11010映射。
因此,最终,我将collabora应用程序安装在nextCloud上,并在专用的Collabora设置页面上配置Collabora服务器网址:
jelastic-node-ndd.com:11010
当我尝试打开Open Office文档时收到了此消息:
Failed to load Collabora Online - please try again later
我不知道如何调查。当我尝试使用给定的端口访问我兄弟的Collabora服务器时,出现连接失败错误。
答案 0 :(得分:0)
我们认为问题的主要原因是端口映射在您的情况下不起作用。
换句话说,telnet $(hostname) 11010
在容器内说“连接被拒绝”,因为映射仅在Internet上有效。
可以通过添加外部IP轻松解决。因此,在“ Collabora Online”设置中,您必须指定URL http://EXT.IP:9980
并删除映射。
另一种方法是映射技巧。在这种情况下,您可以仅保留内部IP并进行映射。 然后,编辑映射并指定私有端口等于公共端口
此外,在容器内添加NAT规则,例如:
iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport 11010 -j DNAT --to-destination 172.21.0.2:9980
11010
-是您的映射端口。 172.21.0.2
-执行iptables -L DOCKER -vnt nat
因此,DOCKER链应如下所示:
root@node210795-nextcloud-test:~# iptables -L DOCKER -vnt nat
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination
19 1140 RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0
106 6360 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9980 to:172.21.0.2:9980
55 3300 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:11031 to:172.21.0.2:9980
因此,您的情况下的Collabora在线URL可以保留为jelastic-node-ndd.com:11010
除此之外,您还可以面对here
所述的问题我们可以使用文章Setting up and configuring collabora/code Docker image(直接使用配置文件)解决此问题。在将loolwsd.xml处理回docker(步骤3)之前,您可能需要chmod这个文件:
chmod 666 loolwsd.xml
注意: 最好在Quick tryout with Nextcloud docker
的第5步中指定其他参数--restart always
变量DOCKER_EXPOSE_PORT
应该保持不变(80)
extra_params=--o:ssl.enable=false
是collabora / code的变量,因此无需在Variables中指定它