背景:公司在很早之间搭建了一个破解版的Confluence,运行在内网服务器上的docker容器中,是从docker hub上拉下来的一个老外构建的破解版Confluence镜像,在运行了近两天的某一天,同事需要在那台服务器的Docker上更新开发环境的项目版本时发现更新不了,docker 报磁盘已满,这时我就被委托去解决这个问题,所以我也没多想,看到是docker的挂载文件目录承包了磁盘,就运行了清理命令,嗖~~~~~800多g空间瞬间归零,当时还很快乐,但好景不长,一会同事就发现Confluence地址无法访问了。。。surprise m t f k。

就这样Confluence被我清理了,当然还备份四个月之前的数据库,然后我就开启了重新部署的征途。

教程开始:

1、下载
docker pull cptactionhank/atlassian-confluence:eap

2、安装数据库mysql
docker pull mysql:5.7.19

3、运行数据库mysql:
docker run --name confluenceDB --restart=always -p 3500:3306 -v /home/confluence/mysql/data:/var/lib/mysql

4、用客户端连接到mysql服务端执行建库脚本:
CREATE SCHEMA confluence DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_bin;

5、注册并首次运行confluence容器
docker run -d --name confluence -p 8090:8090 -v /home/confluence/confluence-home:/var/atlassian/confluence --privileged=true --restart=always --link confluenceDB:confluence --user root:root cptactionhank/atlassian-confluence:eap

6、从浏览器访问confluence,进入到“License key”页面,复制出“Server ID”,例如:
B7DF-2B6F-D1UX-O8QA

7、停止容器:
docker stop confluence

8、破解
8.1、将容器中的“atlassian-extras-decoder-v2-3.2.jar”拷贝到本地,并进行path破解,注意要将该jar重命名为“atlassian-extras-2.4.jar”才能进行path破解。
docker cp confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.2.jar ./

docker cp ./catalina.sh confluence:/opt/atlassian/confluence/bin/catalina.sh

8.2、运行破解补丁,name输入“confluence”,然后输入Server ID,生成“License key”,如下:
AAABLQ0ODAoPeJxtUG1rwjAQ/p5fEdjnSFvnnEJgsYkga1q31rF9jN05AzFK0pT57xffGIx9u7vnn
pe7u2YbsFRHnExwlkyH6TS5x3ndxCadIA6+dfrQ6b2l+d5uTADbAirDbg2u2qw8OE9JinIH6rTEV
Qf0xCTJiCQTFDmdartS7YC2v/xTOYhz3QPtXIDbnpBKG6ptr71eG3jyLVgYWINEr0w4O9CNMv6qU
OiIe2iOBzg75JWU4jVfsAJFIduBVdFNfB+0O16SDYdjkmYkG10EbnfkJvgOXLn/BE8TVIuSflQrL
NmzwFJghmvG8ZKVnA1Q5b6U1f4SRpdvutazQuBGMIlqcD24BaezMZ+TbPYwJzxdvZPq8YWha9qIF
gt+6/4Ptwyu3SoPf975A3K7ipkwLAIUd12U71Soxt8ufMMhJy5E9ndnJyQCFGBk6IY1wGX0oMy5y
WZrU1LHpKC6X02f3

8.3、继续运行破解补丁,点击“path”,破解刚才从容器中拷贝到本地的“atlassian-extras-2.4.jar”

8.4破解成功后,再将该文件重命名回“atlassian-extras-decoder-v2-3.2.jar”,再拷贝回容器中。
docker cp ./atlassian-extras-decoder-v2-3.2.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/

9、拷贝数据库驱动
docker cp ./mysql-connector-java-5.1.42.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/

10、拷贝汉化补丁
docker cp ./Confluence-5.6.1-language-pack-zh_CN.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/
docker cp ./Confluence-Language-STD-CN.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/
docker cp ./newcode-macro-plugin-2.2.8.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/

docker cp confluence:/var/atlassian/confluence/confluence.cfg.xml ./
docker cp ./confluence.cfg.xml confluence:/var/atlassian/confluence/confluence.cfg.xml

11、启动confluence容器
docker start confluence

12、选择Production Install,产品安装,然后 Next。

13、然后给出两个产品,一个questions,一个team,都不选,直接Next。

15、让你选择数据库,这里我选择外部数据库,数据库类型是Mysql。

16、让你选择jdbc连接,还是指定数据库源,我选择 jdbc连接,
输入以下链接
jdbc:mysql://confluenceDB:3306/confluence?useUnicode=true&characterEncoding=utf-8&useSSL=false

然后确定。

17、接下来界面输入jdbc的连接信息然后,Next, !!!!

docker 部署grafana和influxdb docker部署confluence_docker

当这里边点击Next后,Confluence就开会开始进行初始化工作,以下是他要干的事情:

1、创建数据库;2、加入数据;3、加载Web组件(spring 相关);4、加载插件;5、文件IO操作。

以上一系列初始化操作会消耗很多内存,和Cpu资源而且很慢,所以你需要慢慢在这个界面等待,中途页面有任何信息反馈都不管,比如我就看到页面返回了500 页面,此时我就误以为初始化失败,果断去把Confluence容器停了,然后再启动则启不起来了,然后各种找原因找问题,花了整整一天加晚上到8点重复部署了20多遍直到8点半最后一次重试,我开启了Confluence项目的LOG DEBUG,走到填好jdbc连接这一步点Next后,看到控制台不停在打印Sql,一会页面上出现了老面孔500错误,但是控制台还在继续打印,此时我才恍然大悟,Confluence背后还在正常的运行着初始化工作,我带着耐心等待,最后终于看它不动,我刷新页面居然看到主页,才知道成功啦!!!!!!

999:修改数据库的编码防止中文乱码
找到mysql容器里的mysql.cnf文件(通常在/etc/mysql/conf.d/),添加/修改里面的内容:

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4<br>
collation-server = utf8mb4_unicode_ci

最后。。助君删除一路珍重,且行且珍惜。