## 前言
之前在Centos上搭建了一次Confluence,后续公司迁移服务器的时候再次搭建很不方便,于是想到docker-compose编排安装Confluence,下一次迁移就不用花很大的功夫了。话不多说,开始码字!
> 本篇文章不涉及docker相关知识讲解,阅读此文章默认您了解docker容器相关知识。
## 安装Confluence
1. 编写`docker-compose.yml`文件
```yml
version: '3.4'
services:
confluence:
image: cptactionhank/atlassian-confluence:7.7.3
container_name: confluence
environment:
- TZ=Asia/Shanghai
ports:
- "8090:8090"
restart: always
volumes:
- ./config:/opt/atlassian/confluence
- ./data:/var/atlassian/confluence
```
2. 运行容器`docker-compose up -d`
3. 访问`http://ip:8090/`就可以看到`Confluence`的初始化和配置页面。

4. 选择中文->next->选择“产品安装”->跳过插件安装->进入授权码界面 (这时大部分安装文件已经存在,可以开始破解。这里要记下服务器ID,破解时要用到,不要点击获得试用授权)

## 破解Confluence
1. 从容器中复制下来
```bash
sudo docker cp confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar ./atlassian-extras-2.4.jar
```
2. 下载到本地
```bash
sz atlassian-extras-2.4.jar
```
3. 下破解工具
[点我下载破解工具](https://blog.chihiro.org.cn/upload/2020/09/confluence%E7%A0%B4%E8%A7%A3%E5%B7%A5%E5%85%B7-f71fe0bb517e4354be85ebadb27aa343.zip),解压后运行`confluence_keygen.jar`,点`.path` 选择`atlassian-extras-2.4.jar`,破解成功同目录显示`atlassian-extras-2.4.jar.bak`
> 不要关闭破解工具,过会需复制key里面的密钥
4. 把`atlassian-extras-2.4.jar` 文件上传到服务器
5. 将破解后的jar包复制到容器中
```bash
sudo docker cp ./atlassian-extras-2.4.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar
```
6. 停止重启
```bash
docker-compose stop && sudo docker-compose start
```
## 配置数据库
1. 继续访问`ip:8090`, 拷贝黏贴刚生成的`key`, 然后`next`,进入数据库选择。
2. 准备创建一个空的数据库`confluencedb`, 连接`mysql`。
3. 进入`mysql`内执行如下命令
- 创建数据库
```sql
CREATE DATABASE confluencedb CHARACTER SET utf8 COLLATE utf8_bin;
```
- 数据库授权
```sql
GRANT ALL PRIVILEGES ON confluencedb.* TO 'confluenceuser'@'localhost' IDENTIFIED BY 'confluencepassword';
GRANT ALL PRIVILEGES ON confluencedb.* TO 'confluenceuser'@'%' IDENTIFIED BY 'confluencepassword';
```
- 刷新缓存
```sql
flush privileges;
```
4. 连接数据库
填入数据库连接url:`jdbc:mysql://<dbserver>:3306/<database-name>?userUnicode=true&characterEncoding=UTF-8`
> 若提示数据库隔离级别错误,在Mysql配置文件中加入如下配置。
> ```bash
> transaction-isolation=READ-COMMITTED
> max_allowed_packet = 256M
> innodb_log_file_size=2G
> ```
参考官方文档:[官方文档](https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html)
## 后记
到此安装完毕,enjoy~

docker-compose编排安装Confluence