当前位置: 首页 > article >正文

安装docker版jira8.0.2

docker镜像使用官方的atlassian/jira-software:8.0.2-jdk8

docker版本需要 >= 20.10.10

数据库不要用默认字符集初始化(默认为Latin1),否则创建项目不正常,建议utf8 & utf8_bin

utf8mb4排序规则不对也在低版本上会报错Caused by: org.ofbiz.core.entity.GenericDataSourceException: SQL Exception while executing the following:SELECT pluginkey, pluginenabled FROM pluginstate (Table 'jira.pluginstate' doesn't exist)

目前字符级建议 mysql5.6 版utf8 & utf8_bin ,mysql5.7版utf8mb4 & utf8mb4_bin ,mysql8 版utf8mb4 & utf8mb4_bin/utf8mb4_0900_ai_ci

详见:MySQL Database Collation health check fails in Jira server | Jira | Atlassian Documentation

初始化安装

docker-compose.yaml

version: '3'
services:
  jira:
    container_name: jira    
    image: atlassian/jira-software:8.0.2-jdk8
    ports:
      - "8080:8080"
    volumes:
      #- '${PWD}/jira/dbconfig/dbconfig.xml:/var/atlassian/application-data/jira/dbconfig.xml'
      #- '${PWD}/jira/jira-home-data:/var/atlassian/application-data/jira/data'
      - '${PWD}/jira/jira-home:/var/atlassian/application-data/jira'
    environment:
      - DB_TYPE=mysql
      - DB_HOST=jira_db
      - DB_NAME=jira
      - DB_USER=jira_user
      - DB_PASSWORD=jira_password
    depends_on:
      - jira_db
    restart: always
  jira_db:
    container_name: jira_db
    image: mysql:5.6
    ports:
      - "3306:3306"
    volumes:
      - '${PWD}/mysql/db:/var/lib/mysql'
      #- '${PWD}/mysql/conf/my.cnf:/etc/mysql/my.cnf'
      - '${PWD}/mysql/init:/docker-entrypoint-initdb.d'
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=jira
      - MYSQL_USER=jira_user
      - MYSQL_PASSWORD=jira_password
    command:
      - '--character-set-server=utf8'
      - '--collation-server=utf8_bin'
    restart: always

使用docker-compose命令启动

docker-compose up -d

启动后访问

http://ip:8080 

进行配置

配置中若报驱动不存在,执行如下命令

#容器外下载后复制到容器内,然后重启容器
curl -0 https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar --output mysql-connector-java-5.1.49.jar
docker cp mysql-connector-java-5.1.49.jar jira:/opt/atlassian/jira/lib
docker restart jira

授权

可以申请30天的试用授权

登录:Atlassian Store | 报价与订购表单 | 购买 Atlassian 产品

产品:Jira

许可证类型:Jira Software (Data Center)

服务器ID:输入jira系统配置页面的server id

授权申请后填入jira系统可试用30天。

初始化完成后的配置

上面的jdbc驱动需要做映射,防止容器删除后丢失

执行命令复制

cd jira
mkdir lib
docker cp jira:/opt/atlassian/jira/lib/mysql-connector-java-5.1.49.jar ./lib/mysql-connector-java-5.1.49.jar 

修改docker-compose文件 jira增加路径映射

    volumes:
      - '${PWD}/jira/lib/mysql-connector-java-5.1.49.jar:/opt/atlassian/jira/lib/mysql-connector-java-5.1.49.jar'

误删容器找回

如果误删jira容器,但数据库还在可以通过配置数据库找回,但是附件信息就没有了

在jira的home目录编辑dbconfig.xml 配置成你自己的连接信息

<?xml version="1.0" encoding="UTF-8"?>

<jira-database-config>
  <name>defaultDS</name>
  <delegator-name>default</delegator-name>
  <database-type>mysql</database-type>
  <jdbc-datasource>
    <url>jdbc:mysql://address=(protocol=tcp)(host=jira_db)(port=3306)/jira?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=default_storage_engine=InnoDB</url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <username>jira_user</username>
    <password>jira_password</password>
    <pool-min-size>20</pool-min-size>
    <pool-max-size>20</pool-max-size>
    <pool-max-wait>30000</pool-max-wait>
    <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-max-idle>20</pool-max-idle>
    <pool-remove-abandoned>true</pool-remove-abandoned>
    <pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
    <pool-test-on-borrow>false</pool-test-on-borrow>
    <pool-test-while-idle>true</pool-test-while-idle>
    <validation-query-timeout>3</validation-query-timeout>
  </jdbc-datasource>
</jira-database-config>

然后重新启动jira容器即可。

初始数据库字符集设置错了修改

假设数据库名为jiradb,统一修改为 utf8 utf8_bin 执行如下语句

修改数据字符集

ALTER DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;

修改表级别字符集

SELECT CONCAT('ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;') 
FROM information_schema.tables 
WHERE table_schema = 'jiradb';

生成的结果作为SQL执行

修改字段级别字符集

SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', column_type, ' CHARACTER SET utf8 COLLATE utf8_bin;') 
FROM information_schema.columns 
WHERE table_schema = 'jiradb' 
AND data_type IN ('varchar', 'char', 'text', 'tinytext', 'mediumtext', 'longtext');

生成的结果作为SQL执行

数据库升级到5.7

先使用系统菜单备份系统,备份后的文件在/var/atlassian/application-data/jira/export

备份完后拷贝到目的机的 /var/atlassian/application-data/jira/import目录下进行恢复

附件在 /var/atlassian/application-data/jira/data 目录,需要手动备份恢复

5.7的yaml配置为

  jira_db:
    container_name: jira_db
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - '${PWD}/mysql/db:/var/lib/mysql'
      #- '${PWD}/mysql/conf/my.cnf:/etc/mysql/my.cnf'
      - '${PWD}/mysql/init:/docker-entrypoint-initdb.d'
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=jira
      - MYSQL_USER=jira_user
      - MYSQL_PASSWORD=jira_password
    command:
      - '--character-set-server=utf8mb4'
      - '--collation-server=utf8mb4_bin'
    restart: always

如果需要mysql升级到8.0,则需要先将jira升级到8.12,8.12是第一个支持mysql8的版本。8.12一下的版本都不支持,如果界面选择5.7实际mysql连接mysql8,安装会报错。

jira的yaml配置为

  jira:
    container_name: jira    
    image: atlassian/jira-software:8.12.0-ubuntu-jdk8
    ports:
      - "81:8080"
    volumes:
      - '${PWD}/jira/jira-home:/var/atlassian/application-data/jira'
      - '${PWD}/jira/lib/mysql-connector-java-8.0.28.jar:/opt/atlassian/jira/lib/mysql-connector-java-8.0.28.jar'
      - '${PWD}/jira/bin/atlassian-agent.jar:/opt/atlassian/jira/bin/atlassian-agent.jar'
      - '${PWD}/jira/bin/setenv.sh:/opt/atlassian/jira/bin/setenv.sh'
    restart: always


http://www.kler.cn/a/613646.html

相关文章:

  • Go 语言标准库中reflect模块详细功能介绍与示例
  • 如何使用 GPT-4o API 实现视觉、文本、图像等功能 附赠gpt升级和4o额度购买
  • OPPO Pad 4 Pro图赏,轻薄大屏,多面出色
  • QT四 资源文件;绘图;绘图设备;qpixmap 和 qimage 转换;QPixmap、QBitmap、QImage和 QPicture的区别
  • Golang中间件的原理与实现
  • 使用 Selenium 构建简单高效的网页爬虫
  • Docker Compose 基础知识
  • rnn的ho的维度 (num_layers * num_directions, batchsize, hidden_size)
  • 付账问题 | 第9届蓝桥杯省赛C++A组
  • Kafka 偏移量
  • 安卓车载app面经
  • 嵌入式单片机程序的映像文件解读
  • idea中如何使用git
  • git在实践使用中的操作流程
  • Java----用正则表达式爬取数据
  • SpringCloud Hystrix的用法详解
  • 【C#.NET】Web API项目Swagger配置扩展
  • vscode无法打开Terminal终端
  • 电脑连不上手机热点会出现的小bug
  • 博卡软件管理中心8:为美容美发行业量身打造的轻量级管理方案