一、下载安装镜像
事先需要更新一下docker的国内镜像地址:
找到/etc/docker/daemon.json 并设置为以下内容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/","https://hub-mirror.c.163.com","https://registry.docker-cn.com"],
"insecure-registries": ["10.0.0.12:5000"]
}
之后重启docker服务:
service docker restart
开始拉取并安装镜像:
#拉取镜像
docker pull cptactionhank/atlassian-confluence:7.6.0
#运行并创建容器
docker run --name confluence --restart=always --detach --publish 8090:8090 cptactionhank/atlassian-confluence:7.6.0
#查看容器
docker ps -a
二、安全使用
docker cp confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar ./atlassian-extras-2.4.jar
# java版本要求 jdk 1.8
# confluence_keygen.jar 这个包这里就不提供下载了
java -jar confluence_keygen.jar
出来图形界面后不要关闭,访问 http://docker主机IP:8090
设置 confluence 选择中文,选择产品安装等等。遇到授权码页面时复制server id
在工具界面中填入server id,然后点patch 选择刚才复制到本机的 atlassian-extras-2.4.jar
点击gen生成 key
此时将新的atlassian-extras-2.4.jar 上传到docker中
docker cp ./atlassian-extras-2.4.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar
复制mysql驱动
docker cp mysql-connector-java-5.1.39.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/
重启confluence:
docker restart confluence
三、安装配置
1、网络授权
我使用的是宿主机的mysql数据库,所以从容器中访问数据库是一个“跨网络”的操作,默认情况下,容器的ip是172.17.0.2,如果已经有多个容器,就需要进入容器后确认一下其ip:
进入容器并查看IP:
docker exec -it confluence -u root /bin/bash
bash-4.4# ifconfig
防火墙增加策略:
/sbin/iptables -A INPUT -s 172.17.0.2 -p tcp --dport 3306 -j ACCEPT
#为避免容器ip变化,也可对ip段授权
#/sbin/iptables -A INPUT -s 172.17.0.0/24 -p tcp --dport 3306 -j ACCEPT
2、同步时区
将宿主机的时区配置文件同步到容器中:
# 这一步有可能因为localtime也是软链而失败
#docker cp /etc/localtime confluence:/etc/localtime
#这一句没问题
docker cp /usr/share/zoneinfo/Asia/Shanghai confluence:/etc/localtime
3、配置数据库
创建数据库后,对docker对应的ip授权即可
4、安装confluence
重新访问dockerip:8090,选择使用自己的数据库
此时选择mysql数据库,并选择连接串方式,填入以下内容:
jdbc:mysql://宿主机内网IP/confluence?sessionVariables=tx_isolation='READ-COMMITTED'&useUnicode=true&characterEncoding=utf8
带上编码配置参数可避免中文乱码
5、confluence中安装PlantUML宏插件
管理员登录后,右上角的配置菜单中选“管理应用”,页面中点击“查找新应用”,并输入plantuml后搜索,
选择PlantUML for Confluence并安装即可
6、安装PlantUML依赖的绘图组件graphviz
#进入容器内部
docker exec -it -u root confluence /bin/bash
#安装组件,容器是基于alpine,所以使用apk的包管理器
apk add graphviz
四、关于中文乱码
从windows字体目录中,复制以下字体文件:
微软雅黑(msyh.ttc、msyhl.ttc、msyhbd.ttc)、新宋体(simsun.ttc)、黑体(simhei.ttf)至宿主机某个目录(如:/var/fonts)
执行复制命令:
docker cp /var/fonts/ confluence:/usr/share/fonts/
如果执行不了,就单个文件依次复制
进入容器后,清除字体缓存,编辑setenv.sh文件,追加启动配置项:
mkfontscale
mkfontdir
fc-cache -fv
vi /opt/atlassian/confluence/bin/setenv.sh
#找到最后几行,追加CATALINA_OPTS项:
CATALINA_OPTS="-Dconfluence.document.conversion.fontpath=/usr/share/fonts/ ${CATALINA_OPTS}"
保存后退出容器,重启confluence即可
如果之前已插入了宏,则需要编辑并换一个标题后保存成为正常文字。