原文地址:Docker 部署 Atlassian Confluence 搭建企业Wiki
公司企业wiki就是使用Confluence搭建的,产品研发过程中的需求文档、产品设计文档、项目管理文档、技术文档、运维文档等等都统一发布在wiki中,并不断地迭代维护。所以想着自己的协同的办公也可使用Confluence来实现。
一开始是通过非容器的形式部署Confluence,但是过程稍显繁杂,后面从运维那得知Docker中有Confluence的镜像,一切就变得简单了。
- 环境:CentOS7.2
- 容器:Docker
- 镜像:atlassian/confluence-server
- 辅助:Mysql
在一切开始之前先启动我们的CentOS7.2,然后再启动Docker,因为后面mysql和confluence的安装和部署全部是在Docker中完成(CentOS系统、Docker的安装和使用可以查看博主相关的博文)
下面是启动docker的指令
[root@centos7-1 ~]# systemctl start docker
一.安装并配置Mysql
建议重新安装mysql,博主在部署完confluence使用现有的mysql时出现了各种问题,主要出在配置文件上,但是配置文件的内容适用于博主的以往的其他服务,在不影响以往服务和数据的前提下,博主选择重新安装并配置mysql。
1.搜索mysql镜像
[root@centos7-1 ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 8474 [OK]
mariadb MariaDB is a community-developed fork of MyS… 2923 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 626 [OK]
percona Percona Server is a fork of the MySQL relati… 441 [OK]
centurylink/mysql Image containing mysql. Optimized to be link… 60
...
2.拉取镜像
[root@centos7-1 ~]# docker pull mysql:5.7
3.查看镜像
[root@centos7-1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 2151acc12881 2 weeks ago 445MB
4.创建映射数据目录和配置设置
[root@centos7-1 ~]# mkdir -p /export/config/mysql
[root@centos7-1 ~]# touch /export/config/mysql/mysqld.cnf
[root@centos7-1 ~]# mkdir -p /export/data/mysql
[root@centos7-1 ~]# vi /export/config/mysql/mysqld.cnf
mysqld.cnf配置的内容如下(前面一部分是mysql默认的配置内容,后面7行配置时confluence官网指定的自定义配置),直接粘贴复制到mysqld.cnf文件即可
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
collation-server=utf8_bin
default-storage-engine=INNODB
max_allowed_packet=256M
innodb_log_file_size=2GB
transaction-isolation=READ-COMMITTED
binlog_format=row
5.启动mysql
[root@centos7-1 ~]# docker run --name mysql8 -p 3306:3306 -v /export/config/mysql8/mysqld.cnf:/etc/mysql/my.cnf -v /export/data/mysql8:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
6.查看mysql容器
[root@centos7-1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a948c9eb4389 mysql "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
7.进入mysql容器
[root@centos7-1 ~]# docker exec -it mysql bash
root@a948c9eb4389:/#
8.登录mysql
root@a948c9eb4389:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
在上面的过程中需要输入密码,密码为启动容器时设定的密码123456
9.设置root用户
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1Aa@11';
Query OK, 0 rows affected (0.51 sec)
mysql>
安全考虑,设置root用户只能本地登录
10.添加登录用户
mysql> CREATE USER 'zaomianbao'@'%' IDENTIFIED WITH mysql_native_password BY '1Aa@11';
Query OK, 0 rows affected (0.02 sec)
mysql>
11.设置允许远程登录
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zaomianbao'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql>
12.刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>
13.客户端远程连接mysql
二.部署并配置Confluence
1.搜索、拉取、查看confluence镜像
[root@centos7-1 ~]# docker search confluence
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
atlassian/confluence-server Official Confluence Server image – create, o… 319 [OK]
blacklabelops/confluence Dockerized Atlassian Confluence 41 [OK]
derjudge/confluence A batteries-included image for running Atlas… 12 [OK]
goellnerit/confluence-docker 8 [OK]
...
[root@centos7-1 ~]# docker pull atlassian/confluence-server
...
[root@centos7-1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
atlassian/confluence-server latest 8e02e7d24a38 1 minites ago 822MB
...
2.启动confluence
[root@centos7-1 ~]# mkdir /export/data/confluence
[root@centos7-1 ~]# docker run -v /export/data/confluence/:/var/atlassian/application-data/confluence/ --name="confluence" -d -p 8090:8090 -p 8091:8091 atlassian/confluence-server
e6b421dc43d352f1e1f57a4d50d8cdd8441683bfc087d99829753ad1bea0ee67
[root@centos7-1 ~]#
3.查看confluence容器状态
[root@centos7-1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e6b421dc43d3 atlassian/confluence-server "/tini -- /entrypoin…" 40 seconds ago Up 38 seconds 0.0.0.0:8090-8091->8090-8091/tcp confluence
a948c9eb4389 mysql "docker-entrypoint.s…" 48 minutes ago Up 48 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
上面显示"Up 38 seconds",已运行38秒,代表容器正常启动了
4.破解confluence
a.下载相关jar文件
[root@centos7-1 ~]# mkdir -p /export/software
[root@centos7-1 ~]# cd /export/software/
[root@centos7-1 software]# wget http://cdn-blog.oss-cn-beijing.aliyuncs.com/k2p-frp/atlassian-extras-decoder-v2-3.2.jar
[root@centos7-1 software]# wget http://cdn-blog.oss-cn-beijing.aliyuncs.com/k2p-frp/atlassian-universal-plugin-manager-plugin-2.22.jar
[root@centos7-1 software]# ls
atlassian-universal-plugin-manager-plugin-2.22.jar atlassian-extras-decoder-v2-3.2.jar
b.进入confluence容器
[root@centos7-1 software]# cd
[root@centos7-1 ~]# docker exec -it confluence bash
root@e6b421dc43d3:/var/atlassian/application-data/confluence#
c.用下载的文件替换confluence中的atlassian-extras-decoder-v2-xxx.jar/atlassian-universal-plugin-manager-plugin-xxx.jar文件
先备份confluence中原先的jar,这里是将2个jar移至mnt目录下
root@e6b421dc43d3:/var/atlassian/application-data/confluence# mv /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar /mnt/
root@e6b421dc43d3:/var/atlassian/application-data/confluence# mv /opt/atlassian/confluence/confluence/WEB-INF/atlassian-bundled-plugins/atlassian-universal-plugin-manager-plugin-3.0.1.jar /mnt/
备份好文件后,退出confluence容器。拷贝下载的文件到confluence容器中
root@e6b421dc43d3:/var/atlassian/application-data/confluence# exit
exit
[root@centos7-1 ~]# cd /export/software/
[root@centos7-1 software]# docker cp atlassian-extras-decoder-v2-3.2.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/
[root@centos7-1 software]# docker cp atlassian-universal-plugin-manager-plugin-2.22.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/atlassian-bundled-plugins/
重新启动confluence
[root@centos7-1 software]# cd
[root@centos7-1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e6b421dc43d3 atlassian/confluence-server "/tini -- /entrypoin…" 48 minutes ago Up 48 minutes 0.0.0.0:8090-8091->8090-8091/tcp confluence
a948c9eb4389 mysql "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
[root@centos7-1 ~]# docker restart e6b421dc43d3
e6b421dc43d3
[root@centos7-1 ~]#
5.设置confluence
a.浏览器访问confluence(ip:port)![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8a4eeea88cb5e56984cb2dae1f9035be.png)
b.语言设置
选完"中文"后,点击”Next“
c.选择"产品安装"
d.点击下一步,直到显示出该页面
e.点击"获取试用授权"
f.进入到该页面后按照图示选择,最后点击"Generate License"
g.进入到下面的页面后等待一段时间会弹窗确认ip
h.点击"Yes"后会跳回到授权码页面,点击"下一步"即可
i.选择"我自己的数据库",点击"下一步"
j.你会看到以下画面,选择你自己的数据库即可,博主的是Mysql![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/209697f2e41f4adca25ba25c8b33f6b4.png)
切换成Mysql会显示出以下画面
k.下载mysql连接驱动,并将其复制到confluence的/opt/atlassian/confluence/confluence/WEB-INF/lib目录下
这里下载就省略了,大家自行找到对应的驱动下载即可,如果本地有maven的仓库,直接使用即可
[root@centos7-1 ~]# cd /export/software/
[root@centos7-1 software]# ll
-rw-r--r--. 1 root root 960372 7月 26 17:50 mysql-connector-java-5.1.34.jar
-rw-r--r--. 1 root root 1007502 7月 26 16:51 mysql-connector-java-5.1.47.jar
-rw-r--r--. 1 root root 2132635 7月 26 17:02 mysql-connector-java-8.0.13.jar
[root@centos7-1 software]# docker cp mysql-connector-java-8.0.13.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/
[root@centos7-1 software]#
l.重启confluence
[root@centos7-1 software]# docker restart confluence
confluence
[root@centos7-1 software]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e6b421dc43d3 atlassian/confluence-server "/tini -- /entrypoin…" 2 hours ago Up 5 seconds 0.0.0.0:8090-8091->8090-8091/tcp confluence
m.浏览器刷新刚才的页面会看到下面的画面
n.创建confluence数据库
注意这里需要时utf-8的编码
o.回到浏览器,填写参数,测试连接,点击"下一步"
p.选择"示范站点"
q.选择配置用户和组
r.填写管理员账号信息
s.点击"开始"
t.创建空间
u.可以直接跳过,再点击左上角的"Confluence"图片即可到达首页
v.首页如下
w.用户语言设置,点击右上角的头像 – 选择"Settings"
x.点击"edit"
y.选择中文
z.再回到首页,你就熟悉了
三.授权信息查询
选择右上方"齿轮图标" —— 选择”一般设置“ —— 拉倒最下面,左侧目录选择"授权细节"
可以看到破解成功!
三.总结
到这里整个搭建部署的过程就结束了,后面的使用过程大家可以自己摸索。在整个搭建的过程中遇到了一些问题,在这里整理一下。
- Mysql数据库只支持到5.7,再往后会报错,报错原因应该是代码不兼容,看了confluence的日志,代码直接抛出了该异常,再不懂源码的情况下只能从8.0切回5.7的数据库
- confluence要求的内存和磁盘较高,需要给足空间,在日志中可以看到警告
- 还有一些版本上的小问题,大家只要细心应对即可
如果问题可在博客下方留言。