基于Docker破解安装Jira

6,075 阅读3分钟

操作系统为Ubuntu 16, 总体来说Jira的安装步骤为:

  1. 安装数据库,新建数据库(本为为mysql5.7)
  2. 安装Jira.(本文环境为7.12.1)
  3. 去官网获取试用码。
  4. 破解Jira。(替换jar)
  5. 配置Nginx

1.安装数据库,新建数据库

Mysql的官网Docker地址为:hub.docker.com/r/cytopia/m…

  1. 拉取指定版本的Mysql镜像:
docker pull mysql:5.7
  1. 启动mysql,并指定数据存储地址
docker run  -v /home/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 mysql
  1. 新建数据库

    1. 安装mysql-client:
    apt-get install mysql-client-5.7
    
    1. 使用mysql-client连接容器中mysql服务端。
    mysql -uroot -hlocalhost -p
    

    注意此时的localhost可能不能使用,需要使用本地ip地址(10.2.16.4);密码为第2步指定的MYSQL_ROOT_PASSWORD。

    1. 创建Jira存储数据使用的数据库(名字自由指定,我的为jira) 创建数据库的命令是:
    create database jira default charset utf8 COLLATE utf8_general_ci;
    

    删除数据库的命令是:

    DROP DATABASE IF EXISTS jira;
    

2.安装Jira

Jira的Docker地址为:hub.docker.com/r/cptaction…

  1. 拉取Stars最高的jira(当前最新版本为7.12.1)镜像:docker pull cptactionhank/atlassian-jira
  2. 运行Jira.我在此耽误了不少时间,忠告各位:如果在使用Nginx的情况下,一定要指定Jira镜像的参数(X_PROXY_NAME为外网ip或者域名,X_PROXY_PORT外网端口号,X_PROXY_SCHEME外网http或https,X_PATH默认该服务的运行在/下)
docker run --detach --publish 8081:8080 -e X_PATH=/jira -e X_PROXY_NAME=39.xx.94.xxx -e X_PROXY_PORT=80 -e X_PROXY_SCHEM=http cptactionhank/atlassian-jira:latest

此时浏览器打开http://ip:port/jira可以看到设置界面。

3.设置Jira,官网获取试用码激活Jira

浏览器打开http://ip:port/jira,第一次进入系统需要设置数据库链接信息和激活码。

  1. 填写数据库连接信息,数据库地址不能使用localhost,需要填写外网ip或者内网ip.
  2. Jira获取试用码的地址为:my.atlassian.com/products/in…(自行备梯)注册账号填写组织信息后,点击“New Evaluation Lisence”获取为期一个月的试用码。(目的是:拿到试用码才能进入系统,然后破解为永久使用)。
    破解Jar下载地址:pan.baidu.com/s/1qbRw5njQ…

4.破解Jira

  1. 查看Jira容器的id。
docker ps 
  1. 替换破解的jar。
docker cp /home/atlassian-extras-3.2.jar a64:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/ 

第2步中 atlassian-extras可以自行查询后修改为目标版本。查询命令是:

docker exec -it a64 /bin/sh
cd /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
ls

即可查看到atlassian-extras的版本。

5.配置Nginx

Nginx的Docker地址为:hub.docker.com/_/nginx/

  1. 运行
Docker:docker run --name=nginx -p 80:80 -v /home/web/nginx/www:/usr/share/nginx/html -v /home/web/nginx/conf:/etc/nginx/conf.d  -v /home/web/nginx/logs:/var/log/nginx -d nginx
1. /home/web/nginx/www:为静态文件存放地址
2. /home/web/nginx/conf下存放配置文件配置,配置文件的规则为:*.conf.
3. /home/web/nginx/logs为nginx日志;

福利模板Nginx:default.conf

server {
    listen       80  default_server;
  
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /api/ {
      proxy_pass   http://172.17.5.4:8080/; 
    }

    #参考地址https://github.com/cptactionhank/docker-atlassian-jira/blob/master/.docker/nginx/nginx.conf
    location /jira/ {
 	proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 100M;
        proxy_pass   http://172.17.5.4:8081/jira/; 
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

在Nginx下代理Jira如果配置不当有很多404.403错误。可通过重新进行《安装Jira》中设置X_PROXY_NAME,X_PROXY_PORT,X_PROXY_SCHEME,X_PATH解决。