在Docker上部署Jira和Confluence

这篇文章主要介绍了:
如何在Docker上部署Jira和Confluence;
如何破解;
如何关联。

本文基于Centos,其他环境大同小异

一,部署

1.1 安装Docker

1
2
yum -y install docker-io  #安装Docker
service docker start #启动Docker

1.2 安装Jira、Conf、Mysql

1
2
3
docker pull cptactionhank/atlassian-confluence  #安装Conf
docker pull cptactionhank/atlassian-jira-software #安装jira
docker pull mysql:5.7 #安装mysql

1.3 启动Mysql

1
docker run --name atlassian-mysql --restart always -p 3306:3306 -v /opt/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=goodpwd -d mysql:5.7  #这里修改为你自己的密码

1.4 配置Mysql

1
2
3
4
5
6
7
8
9
10
docker run -it --link atlassian-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"' #登录Mysql并管理

create database jira default character set utf8mb4 collate utf8mb4_unicode_ci; #创建数据库
CREATE USER `jira`@`%` IDENTIFIED BY 'jiraJIRA123!';GRANT ALL ON *.* TO `jira`@`%` WITH GRANT OPTION; #创建用户
create database conf default character set utf8 collate utf8_bin; #创建数据库
CREATE USER `conf`@`%` IDENTIFIED BY 'confCONF123!';GRANT ALL ON *.* TO `conf`@`%` WITH GRANT OPTION; #创建用户

set global transaction isolation level read committed;#事物隔离
set session transaction isolation level read committed;#事物隔离
exit; 退出

1.5 配置端口

Jira和Conf都是运行在tomcat上的,所以基于tomcat的策略进行修改。
接下来以jira为例,conf类似,不重复讲:

检查网络配置

1
sysctl net.ipv4.ip_forward

如果返回为net.ipv4.ip_forward = 0,则需要修改配置:

1
vi /etc/sysctl.conf

net.ipv4.ip_forward = 0修改为net.ipv4.ip_forward = 1
重启network服务

1
systemctl restart network

再检测一次:

1
sysctl net.ipv4.ip_forward

启动容器

1
2
docker run --detach --restart always -v /data/atlassian/jira:/home --publish 8099:8099 cptactionhank/atlassian-jira-software
docker run --detach --restart always -v /data/atlassian/confluence:/home --publish 8097:8097 cptactionhank/atlassian-confluence

登录到jira的容器

1
docker ps -a #查看所有容器

示例如下:

1
2
3
4
CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS                                   NAMES
cc9aaa7835f3 cptactionhank/atlassian-confluence "/docker-entrypoin..." 18 minutes ago Up 8 minutes 8090-8091/tcp, 0.0.0.0:8097->8097/tcp jovial_mirzakhani
4a9496e6d836 cptactionhank/atlassian-jira-software "/docker-entrypoin..." 18 minutes ago Up 11 minutes 8080/tcp, 0.0.0.0:8099->8099/tcp stupefied_hoover
8bd26b5c59fe mysql:5.7 "docker-entrypoint..." 3 hours ago Up 3 hours 0.0.0.0:3306->3306/tcp atlassian-mysql

找到jira的容器,并登录

1
2
docker exec -i -t 4a9496e6d836 bash  #登录
vi /opt/atlassian/jira/conf/server.xml

修改端口

修改里面的端口,如果你用了nginx之类的反向代理,则需要使用配置文件中下面的部分,并将域名配置进去
修改完成之后,重启jira的tomcat

1
2
3
sh /opt/atlassian/jira/bin/shutdown.sh
sh /opt/atlassian/jira/bin/startup.sh
exit

重启之后,再重启jira的容器:
docker restart 4a9496e6d836

二,破解

破解的核心方式是,替换掉atlassian-extras-3.2.jar的jar包,可以在网上下载,这里依然以jira为例:

1
2
3
4
5
docker exec --user root 4a9496e6d836 mv /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar_bak

docker cp atlassian-extras-3.2.jar 4a9496e6d836:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/

docker restart 4a9496e6d836 #4a9496e6d836是你上一步得到的容器ID

三,关联Jira和Conf