docker部署jira

865 阅读4分钟

前言:MySQL 数据库的安装

由于dev环境已经安装docker容器的mysql8.0.33数据库,所以使用dev环境本身的数据库

  dev数据库地址:192.168.3.24:3307

    帐号:root 密码:

docker安装jira

一、安装docker

测试环境已经安装好docker,未安装参考blog.csdn.net/weixin_4477…

二、下载MySQL 驱动

既然默认使用PostgreSQL数据库,若使用MySQL数据库,则需要添加MySQL驱动,

从MySQL官网下载MySQL驱动,具体的驱动版本号需要根据实际使用的数据库版本号,理论上高版本的MySQL 驱动支持低版本的MySQL数据库。

说明:测试环境使用的mysql版本为8.0.33

MySQL驱动下载:downloads.mysql.com/archives/c-…

解压下载的MySQL驱动压缩包,将 MySQL压缩包里面的 mysql-connector-java-8.0.23.jar 文件复制到Dockerfile 文件目录

三、下载JIRA 依赖软件

参考文档说明:github.com/qinyuxin99/…

下载的版本是:atlassian-agent-v1.3.1.tar.gz,解压下载的jira软件包,将 atlassian-agent.jar 文件复制到Dockerfile 文件目录

四、编写jira Dockerfile文件

  1、我将jira需要的文件都放在 jira 目录下:

2、 构建jira镜像的Dockerfile文件内容见:

## cat Dockerfile
 
# jira 的基础镜像版本, 需要更换成自己需求的版本号,适用于升级jira
FROM atlassian/jira-software:latest AS jira
 
LABEL creator="@土豆"
 
USER root
 
# 软件包下载地址: https://github.com/qinyuxin99/atlassian-agent
 
COPY atlassian-agent.jar /opt/atlassian/jira/
 
# jira配置和连接mysql参考文档:https://confluence.atlassian.com/adminjiraserver0816/connecting-jira-applications-to-a-database-1063163980.html
# 添加 mysql 驱动 下载地址: https://downloads.mysql.com/archives/c-j/
#COPY mysql-connector-java-5.1.49.jar /opt/atlassian/jira/lib/
COPY mysql-connector-j-8.0.33.jar  /opt/atlassian/jira/lib/
 
# 使atlassian-agent.jar和 Tomcat 一起启动
RUN echo 'export JAVA_OPTS="-javaagent:/opt/atlassian/jira/atlassian-agent.jar ${JAVA_OPTS}"' >> /opt/atlassian/jira/bin/setenv.sh
 
# RUN echo 'java -jar /opt/atlassian/jira/atlassian-agent.jar -p jira -m admin@qq.com -n jira -o https://zhile.io -s BUB5-TBAT-K30D-VCPN' >/opt/1.txt
 
# ubuntu 系统设置时区 和 24小时
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone && echo "LC_TIME=en_DK.UTF-8" >/etc/default/locale
 
#  安装docker和docker-compose 教程见: https://blog.csdn.net/weixin_44770684/article/details/129227050
#  curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose 
#  chmod a+x /usr/local/bin/docker-compose
# 
# 构建 jira镜像和 推送镜像到harbor等镜像仓库
#  docker build -t test/atlassian/jira-software:8.16.1 . --no-cache
#  docker push test/atlassian/jira-software:8.16.1 

3、构建jira镜像

# 构建 jira 镜像
cd jira  # 切换到 Dockerfile 文件目录下,执行构建镜像命令
docker build -t jira-software:9.5.1 . --no-cache

五、创建jira 容器启动文件

使用 docker-compose 创建jira启动文件,并且包含了mysql 启动文件(若是使用其他安装的mysql,则可以注释掉mysql 启动文件部分)

vim docker-compose.yaml

version: '3.3'
services:
    jira:
        container_name: jira
#        depends_on:
#        - mysql
#        links:
#        - mysql
        image: jira-software:9.5.1
        restart: always
        privileged: true
        ports:
            - '7081:8080'
        environment:
            - TZ=Asia/Shanghai
#            TZ: Asia/Shanghai # 两种环境变量写法
        volumes:
            - './jira/jiradata:/var/atlassian/application-data/jira'

# 创建容器
docker-compose up -d

六、数据库配置和创建jiradb

## my.cnf
## 将 my.cnf 文件复制到 mysql的配置映射目录 mysql/conf
 
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8mb4
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_log_file_size=2G

1.登录mysql创建jiradb数据库和jira用户

CREATE USER 'jira' IDENTIFIED BY 'jira';

CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on jiradb.* TO 'jira'@'%';

七、配置jira和配置许可

1、配置jira,访问地址是:http://ip:7081

2、从截图看出jira Server ID为: B62R-808W-X0UQ-M9B9,则登录jira容器执行获取许可命令:

# 登录 jira容器 执行破解命令, BFWC-OXDL-QID0-OJUT 为 对应的  Server ID
java -jar /opt/atlassian/jira/atlassian-agent.jar -p jira -m admin@qq.com -n jira -o https://zhile.io -s 'B62R-808W-X0UQ-M9B9'

3、将输出许可秘钥结果回填到 Your License Key 填写框中:

4、填写许可秘钥,点下一步后,出现的空白框为设置管理员相关信息

5、邮箱认证测试可以跳过

6、查询成功许可结果,可见许可到期时间为:2089-07-06

八、jira插件破解

进入jira的容器内部,由于破解程序已经与jira一起构建到镜像当中,可以直接执行破解程序

java -jar /opt/atlassian/jira/atlassian-agent.jar -p jp.ricksoft.plugins.wbsgantt-for-jira -m admin@qq.com -n jira -o https://zhile.io -s 'BFWC-OXDL-QID0-OJUT' 

-p    第三方插件的应用秘钥
-m    邮箱地址(可假)
-o    https://zhile.io
-s    jira的serverID

附加安装mysql8

# 拉取镜像
docker pull mysql:8.0.33

启动容器
docker run --restart=always --name mysql8 --privileged=true -d -p 3307:3306 -v /ssd_data1/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /ssd_data1/mysql/logs:/logs -v /ssd_data1/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.33



docker run --restart=always --name mysql8-1 --privileged=true -d -p 3308:3306 -v /ssd_data1/mysql/my.cnf:/etc/my.cnf -v /ssd_data1/mysql/logs:/logs -v /ssd_data1/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.33