在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0) 本文作者: 苏洋 创建时间: 2019年03月30日 使用 Docker 搭建 Confluence小型团队协同,或者想花钱买个省心,Confluence 是比较好的选择之一。但是最近安装 Confluence ,发现官方和网上的安装介绍都比较“落后”低效,所以有了本篇内容。 本文将介绍如何使用 Docker Compose 快速搭建 Confluence 、以及如何和 Traefik 一同使用,如果你看过之前的内容,跟随本文应该能在十分钟内解决战斗。 基础准备
这里会讲解两个有代表性的版本:
如果你也选择使用 MySQL 作为储存后端,需要下载此文件,一般情况下你会获得 mysql-connector-java-5.1.47.tar.gz 的压缩包,解压缩之后,获得 mysql-connector-java-5.1.47.jar,我们稍后会用到。 针对老版本软件的使用先说老版本,如果你只是需要基础的 Wiki 功能,那么下面的配置文件应该能够满足你的需求。 version: '3' services: confluence: image: atlassian/confluence-server:6.4.3-alpine expose: - 8090 - 8091 networks: - traefik labels: - "traefik.enable=true" - "traefik.port=8090" - "traefik.frontend.rule=Host:${DOMAIN}" - "traefik.frontend.entryPoints=http,https" volumes: - ./data:/var/atlassian/application-data/confluence - ./mysql-connector-java-5.1.47.jar:/opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-5.1.47.jar networks: traefik: external: true 将上面的文件保存为 docker-compose.yml 后,我们创建另外基础配置文件 **.env **,和上面的配置一样简单,文件内容可以是下面这样。 DOMAIN=wiki.lab.com 将 docker-compose.yml 、.env、mysql-connector-java-5.1.47.jar 放在同一目录,如果此刻你的 Traefik 已经就绪,那么执行 直接访问你配置好的域名,比如例子中的 如果你选择将 Confluence 部署在公网,面对每天很是烦人的扫描器,不妨简单添加 因为使用了 Traefik ,所以添加这个功能十分简单,只需要两步: 第一步,在 docker-compose.yml 的 - "traefik.frontend.auth.basic=${BASIC_AUTH}" 第二步,执行 BASIC_AUTH=user:$apr1$MzgRxukq$MhYl/2JidzUNlHfyfIQF41 当再有扫描器想直接对应用进行扫描的时候,就会被 Basic Auth 挡在外面啦。 应用健康检查报错当你安装完毕,开始使用的时候,会发现界面的右上角会提示一个警告信息。
官方知识库中有提到这个问题,如果你使用的也是低版本(6.6)之前,其实可以通过配置 比如在 docker-compose.yml 中添加一段声明,让应用服务器查找本机上应用地址,而非一定要访问公网地址的应用,参考配置如下: version: '3' services: confluence: image: atlassian/confluence-server:6.4.3-alpine expose: - 8090 - 8091 networks: - traefik labels: - "traefik.enable=true" - "traefik.port=8090" - "traefik.frontend.rule=Host:${DOMAIN}" - "traefik.frontend.entryPoints=http,https" volumes: - ./data:/var/atlassian/application-data/confluence - ./mysql-connector-java-5.1.47.jar:/opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-5.1.47.jar extra_hosts: - "${DOMAIN}:127.0.0.1" networks: traefik: external: true 是不是十分简单,如果你的需求是基础使用,上述的配置应该已经能够满足你的需求了。 针对新版本软件的使用接着我们聊聊如何使用最新版本的软件,因为我们使用了容器,所以更新版本十分简单,在配置文件中修改镜像的版本号就好了。比如,我想将 其他的基本和老版本软件使用一致。不过这里会有几个小问题,需要额外解决一下。 数据库不能正确连接
要解决这个问题,可以选择配置加密的 MySQL 连接,并更新容器中的证书,也可以选择添加参数,关闭强制使用加密连接请求,后者更简单,如果要求不高,可以这么做。 编辑 data/confluence.cfg.xml 文件中的 Traefik Basic Auth 和 Tomcat 发生联动新版本的软件逻辑中,有针对请求中带有 这个显然不是我们添加 Basic Auth 的用意,并且实际使用中,也不推荐直接将 Confluence 的认证接口对外。 解决方案很简单,在 同样的,重启应用,这个问题就解决了。 稍微麻烦一些的健康检查因为我们使用 Traefik 挂载证书,应用实际运行在代理服务器背后,当使用管理员访问控制台,会看到一个警告信息。
考虑应用的正常使用,我们通常会将协议进行修正,比如将站点基础URL修正为
原因是比较新的版本的应用,健康检查逻辑附带了端口和协议判断,低版本可以直接使用 Traefik 反代挂载证书的幸福快乐日子一去不复返。 解决问题需要分为三步。 第一步,将容器内的 Tomcat 运行配置 docker cp da5582a01879:/opt/atlassian/confluence/conf/server.xml . 第二步,将配置中端口为 8090 的 Connector 的配置更新为下面的内容(尤其注意最后一行内容): <Connector port="8090" connectionTimeout="20000" redirectPort="8443" maxThreads="48" minSpareThreads="10" enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8" protocol="org.apache.coyote.http11.Http11NioProtocol" proxyName="wiki.lab.com" proxyPort="443" scheme="https"/> 第三步,更新 在 - ./server.xml:/opt/atlassian/confluence/conf/server.xml 同时删除 重启应用,一切正常。 完整的配置文件为了方便使用,这里给出完整的参考配置。 version: '3' services: confluence: image: atlassian/confluence-server:6.15.1-alpine expose: - 8090 - 8091 networks: - traefik labels: - "traefik.enable=true" - "traefik.port=8090" - "traefik.frontend.rule=Host:${DOMAIN}" - "traefik.frontend.entryPoints=http,https" - "traefik.frontend.auth.basic.removeHeader=true" - "traefik.frontend.auth.basic=${BASIC_AUTH}" volumes: - ./data:/var/atlassian/application-data/confluence - ./mysql-connector-java-5.1.47.jar:/opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-5.1.47.jar - ./server.xml:/opt/atlassian/confluence/conf/server.xml networks: traefik: external: true 最后虽然对于团队来说 Confluence 是一个不错的方案,但是实际针对个人/拥有定制能力的团队而言,使用完全开源免费的 WordPress 或许会更好,下一篇我将介绍 WordPress 用作知识管理用途的一些定制处理。 以上就是使用 Docker 搭建 Confluence的详细内容,更多关于Docker 搭建 Confluence的资料请关注极客世界其它相关文章! |
请发表评论