之前介绍过使用容器搭建 Confluence 作为团队协同工具使用。在使用过程中,我们遇到了一些问题,比如文章时间展示不正确、中文内容无法显示、运行资源不足。
下面就来讲讲在容器场景下,怎么解决简单快速的这些问题。
解决文章时间戳不正确
默认 Confluence
使用的是东一区(零时区)的时间制式,想解决时区问题,需要先在 environment
字段内指定 CATALINA_OPTS
参数内容。
environment:
- 'CATALINA_OPTS= -Duser.timezone=GMT+08'
另外,为了避免容器和宿主机时间不一致,可以将本机的 localtime
挂载到容器中。
volumes:
- /etc/localtime:/etc/localtime:ro
解决应用卡顿
之前的完整配置将会使用 Confluence
默认资源运行服务,程序最大使用内存是 1GB
,当团队人数和内容多了之后,由于资源不足,会让服务运行变慢,最简单的解决方案就是增加资源。只需要在 environment
字段内声明下面内容即可,举个例子,我们可以提高他使用的内存资源为 4~8 GB
。
environment:
- 'JVM_MINIMUM_MEMORY=4096m'
- 'JVM_MAXIMUM_MEMORY=8192m'
解决中文文档不能预览
由于默认容器镜像不包含中文字体,当我们想预览一个中文文档的时候,得到的结果会是一堆“口口口”方块。
解决这个问题的第一步是为镜像系统安装中文字体,下载一些中文字体 ( ttf/ttc ),比如宋体、楷体,将文件命名为:simsun.ttf
、simkai.ttc
,然后保存在 fonts
文件夹中,然后挂载到容器系统中。
volumes:
- ./fonts:/usr/local/share/fonts
接着在参数中添加转换参数:
environment:
- 'CATALINA_OPTS= -Duser.timezone=GMT+08 -Dconfluence.document.conversion.fontpath=/usr/local/share/fonts/ '
如果你之前没有预览过中文文档,现在重启应用,问题就解决了。
如果你之前已经预览过中文文档,发现重启应用,预览问题依然如故,那么可以通过清除预览缓存来解决问题。
在之前的配置中,我们将应用数据挂载到了本地。
volumes:
- ./data:/var/atlassian/application-data/confluence
通过清空下列目录中的缓存内容,可以即时解决问题。
rm -rf ./data/shared-home/dcl-document/*
rm -rf ./data/shared-home/dcl-document_hd/*
rm -rf ./data/shared-home/dcl-thumbnail/*
最后
先聊到这里吧。
–EOF