linux docker 部署破解版本jira:8.4.0——测试体验(非商用)

由于jira是非开源的,所以自己测试用的是破解版本。仅限于自己测试使用,非商用。

本文参考文章,做了一些整理。

一、拉取镜像

jira:需要根据这个官网的jira版本构建一个破解版的jira镜像

docker pull atlassian/jira-software:8.4.0

jira 8.4.0适配的mysql数据库是5.7.x。

mysql:

docker pull mysql:5.7

二、构建pojie版的jira镜像

1.下载pojie程序包

参考文章中有:通过Docker安装JIRA8.4.0与Confluence7.0.2(破解版) - 简书

解压后将jar放到一个指定的目录,待会和Dockerfile同级目录。

2.构建Dockerfile

内容:

bash 复制代码
#截至2019年9月11日,最新版本为8.4.0,后期出现新版本可指定8.4.0进行安装。
FROM atlassian/jira-software:8.4.0

USER root

# 创建目录 /opt/jira/bin/
RUN mkdir -p /opt/atlassian/jira/bin/

# 将代理破解包加入容器
COPY "atlassian-agent.jar" /opt/atlassian/jira/

# 替换为自定义的配置文件
COPY custom-config.xml /var/atlassian/application-data/jira/dbconfig.xml

# 如果 setenv.sh 文件不存在,则创建一个空文件
RUN touch /opt/atlassian/jira/bin/setenv.sh

# 设置启动加载代理包
RUN echo 'export CATALINA_OPTS="-javaagent:/opt/atlassian/jira/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/jira/bin/setenv.sh

#暴露端口
EXPOSE 9000

3.构建镜像,执行命令

bash 复制代码
docker build -t jira/jira:8.4.0 .

4.查看构建好的镜像

docker images ls

三、运行容器_dockercompose的方式

0.构建docker-compose.yml

仍然和jar一个目录就行。

内容:

bash 复制代码
version: '3'
services:
  jira:
    image: jira:8.4.0
    container_name: jira_container
    ports:
      - "9000:8080"
    depends_on:
      - mysql
    environment:
      - MYSQL_HOST=mysql_container
      - MYSQL_PORT=3306
      - MYSQL_DATABASE=jiradb
      - MYSQL_USER=jira
      - MYSQL_PASSWORD=123456
    networks:
      - bridge
    volumes:
      - ./dbconfig.xml:/var/atlassian/application-data/jira/dbconfig.xml
      - ./lib/:/var/atlassian/jira/lib/

  mysql:
    image: mysql:5.7
    container_name: mysql_container
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_HOST: '%'
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_USER: jira
      MYSQL_PASSWORD: 123456
      MYSQL_DATABASE: jiradb
    volumes:
      - ./mysql_custom.cnf:/etc/mysql/mysql.conf.d/mysql_custom.cnf
      - ./mysqld.cnf:/etc/mysql/conf.d/mysql.cnf
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql   
    networks:
      - bridge

networks:
  bridge:
    driver: bridge

一些小解释:

  • 绑定./lib是为了能够将破解程序包让jira正确加载,这样子就可以实现破解了。
    • jira的驱动程序在 /opt/atlassian/jira/lib下。
  • networks这俩个必须绑定同一个网络才可能互相通信访问。
  • 这里jira绑定容器内8080是由于jira默认的端口是8080。
对于mysql的一些小细节

这里mysql配置中的 mysql_custom.cnf 内容,为了跳过ssl,但是貌似没有效果,可以不用管,不影响。

0. mysql_custom.cnf 内容:
bash 复制代码
[mysqld]
skip_ssl

这里的 mysqld.cnf 对mysql进行一个基础的设置:

1. mysqld.cnf内容:
bash 复制代码
[mysqld]
# 基本设置
user = jira
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-host-cache
skip-name-resolve

# Jira
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


# 字符集设置
#character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# 日志设置
log_error = /var/log/mysql/error.log
log_queries_not_using_indexes = 1

# InnoDB 存储引擎设置
innodb_file_per_table = 1
innodb_buffer_pool_size = 128M
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1

# 安全设置
bind-address = 0.0.0.0
复制代码

这里的init.sql是初始化数据库做的一些操作,比如新建一个数据库,用户之类的。

2. init.sql 内容:
bash 复制代码
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX ON jira.* TO 'jira'@'%' IDENTIFIED BY 'jira';
GRANT ALL PRIVILEGES ON jira.* TO 'jira'@'%' IDENTIFIED BY 'jira';
SET PASSWORD FOR 'jira'@'%' = PASSWORD('123456');
对于jira的一些小细节
0. dbconfig.xml

内容:

bash 复制代码
<jira-database-config>
  <name>defaultDS</name>
  <delegator-name>default</delegator-name>
  <database-type>mysql</database-type>
  <jdbc-datasource>
    <url>jdbc:mysql://mysql_container:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;useSSL=false&amp;sessionVariables=default_storage_engine=InnoDB</url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <username>jira</username>
    <password>123456</password>
    <pool-min-size>20</pool-min-size>
    <pool-max-size>20</pool-max-size>
    <pool-max-wait>30000</pool-max-wait>
    <pool-max-idle>20</pool-max-idle>
    <pool-remove-abandoned>true</pool-remove-abandoned>
    <pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
 
    <validation-query>select 1</validation-query>
    <min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
    <time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
  
    <pool-test-while-idle>true</pool-test-while-idle>
    <pool-test-on-borrow>false</pool-test-on-borrow>
    <validation-query-timeout>3</validation-query-timeout>
  </jdbc-datasource>
</jira-database-config>

因为是要用docker-compose去部署这两个容器,并且在同一个网络中,所以就可以通过容器名称去访问,所以这里是mysql的容器名称:mysql_container

这个 dbconfig.xml 也可以在 jira官网中找到。

1. /lib/文件夹
复制代码
将 atlassian-agent.jar (破解包)放到新建的lib文件夹下。

现在的目录大致是这样子:

2. 执行命令

在当前这个目录执行:

bash 复制代码
docker-compose up -d

1.访问

部署的ip+9000即可.

相关推荐
chenbin52027 分钟前
Jenkins 自动构建Job
运维·jenkins
java 凯29 分钟前
Jenkins插件管理切换国内源地址
运维·jenkins
xidianjiapei00130 分钟前
Kubernetes的Ingress 资源是什么?
云原生·容器·kubernetes
AI服务老曹32 分钟前
运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
运维·人工智能·安全·开源·音视频
sszdzq2 小时前
Docker
运维·docker·容器
book01212 小时前
MySql数据库运维学习笔记
运维·数据库·mysql
dmy2 小时前
docker 快速构建开发环境
后端·docker·容器
MYPM_AndyLiu3 小时前
Codes 开源免费研发项目管理平台 2025年第一个大版本3.0.0 版本发布及创新的轻IPD实现
测试用例·开源软件·jira·项目管理工具·项目管理软件·teambition·redmine
bugtraq20213 小时前
XiaoMi Mi5(gemini) 刷入Ubuntu Touch 16.04——安卓手机刷入Linux
linux·运维·ubuntu
xmweisi3 小时前
【华为】报文统计的技术NetStream
运维·服务器·网络·华为认证