本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)
本文作者: 苏洋
创建时间: 2019年04月05日 统计字数: 1946字 阅读时间: 4分钟阅读 本文链接: https://soulteary.com/2019/04/05/confluence-containerizes-the-use-of-pickups.html
Confluence 使用拾遗 前一篇 内容介绍了如何快速使用容器搭建 Confluence ,在一周的实际使用之后,我们发现了一些小问题,本篇将作为之前内容的补充。
如何修正应用时区 应用启动之后,你将看到时区默认是:GMT +0 ,这显然不符合我们的需求。
要解决这个问题,可以通过挂载宿主机 /etc/localtime 到容器内,并在JVM变量中添加 -Duser.timezone=GMT+08 参数。
同时在挂载的时候要注意,为了避免容器内部应用修改 /etc/localtime ,文件需要设置为只读。
上面操作看起来很麻烦,但是实际上配置代码很简单,比如这样:
environment:
- 'CATALINA_OPTS= -Duser.timezone=GMT+08'
volumes:
- /etc/localtime:/etc/localtime:ro
修改可用内存资源 当使用人数比较少、内容也比较少的时候,运行 Confluence 并不会出现什么异常。但是当内容多了、或者用户数多了之后,Confluence 会出现一些性能问题,比如卡顿。
此时,可以通过增加可用内存资源来解决这个问题。官方默认数值都是 1024m,修改配置的时候,需要我们根据实际情况进行调节:
比如我有一台 4C8G 的主机,考虑到系统进程、运维软件、容器服务的消耗,我选择给予 Confluence 6GB 内存的上限,而下限和默认保持一致就好。 举个例子,下面这段配置赋予程序可用内存范围就是 1G 到 6G。
environment:
- 'JVM_MINIMUM_MEMORY=1024m'
- 'JVM_MAXIMUM_MEMORY=6144m'
关闭数据分析收集 官方有默认开启数据分析功能,会将你的用户行为(不含数据),发送至厂商数据分析平台。
常规的关闭方式是使用管理员账号,选择“禁用”按钮,但是如果你发现禁用不灵,可以通过接口调用手动关闭分析服务。
在容器内部执行下面的命令(假设超级管理员账号和密码都是 admin):
curl -vvv -H "Content-Type:application/json" -H "Accept:application/json" --user admin:admin -X PUT -d '{"analyticsEnabled": "false"}' http://localhost:8090/rest/analytics/1.0/config/enable
完整配置 最后,将上述修正综合一下,完整的配置文件如下:
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}"
environment:
- 'CATALINA_OPTS= -Duser.timezone=GMT+08'
- 'JVM_MINIMUM_MEMORY=1024m'
- 'JVM_MAXIMUM_MEMORY=6144m'
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
- /etc/localtime:/etc/localtime:ro
networks:
traefik:
external: true
最后 额外说一句,官方容器镜像的文档真的是一塌糊涂。不过功能设计是真的好用,特别适合定制化需求不强烈的初创公司/团队使用。