Jelastic-Collabora Online,具有不带SSL的Next Cloud(用于测试)

时间:2019-05-07 09:58:02

标签: jelastic nextcloud

出于测试目的,我想在Jelastic环境中在线安装Collabora。

我正在尝试遵循以下基本步骤:https://www.collaboraoffice.com/code/quick-tryout-nextcloud-docker/

首先,我使用链接中给出的docker镜像配置拓扑。

enter image description here

我转到给定的URL后成功安装了下一个云。

然后按照说明中的说明添加变量extra_params=--o:ssl.enable=false

enter image description here

然后我尝试通过添加端点来映射端口: enter image description here

它将端口9980与公共端口11010映射。

因此,最终,我将collabora应用程序安装在nextCloud上,并在专用的Collabora设置页面上配置Collabora服务器网址:

jelastic-node-ndd.com:11010

当我尝试打开Open Office文档时收到了此消息:

Failed to load Collabora Online - please try again later

我不知道如何调查。当我尝试使用给定的端口访问我兄弟的Collabora服务器时,出现连接失败错误。

1 个答案:

答案 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

时获得的IP

因此,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中指定它