JIRA是Atlassian伞下的一款旗舰产品,其有细分为Jira Core/Jira Software/Jira Service,另外同时有分Cloud方式和本地方式,此文使用的是在本地搭建Jira Software的方式。
按照生产环境方式部署jira,需要设定数据库,这里使用mysql,相关的卷的挂载信息如下
服务 | 宿主目录 | 容器Mapping地址 | 说明 |
---|---|---|---|
MYSQL | data | /var/lib/mysql | mysql数据 |
MYSQL | conf.d | /etc/mysql/conf.d | mysql设定 |
MYSQL | jira | /var/atlassian/jira | JIRA HOME |
[root@platform ~]# mkdir jira
[root@platform ~]# cd jira
[root@platform jira]# mkdir -p data conf.d jira
[root@platform jira]# ls
conf.d data jira
[root@platform jira]#
[root@platform jira]# cat docker-compose.yml
version: '2'
services:
# database service: mysql
mysql:
image: liumiaocn/mysql:5.7.18
ports:
- "32911:3306"
volumes:
- ./data/:/var/lib/mysql
- ./conf.d/:/etc/mysql/conf.d
environment:
- MYSQL_ROOT_PASSWORD=admin123
- MYSQL_DATABASE=jira
- MYSQL_USER=jira
- MYSQL_PASSWORD=jira123
restart: "no"
# Ticket Management service: jira
jira:
image: liumiaocn/jira-software:7.11
ports:
- "32901:8080"
volumes:
- ./jira:/var/atlassian/jira
links:
- mysql:mysql
restart: "no"
[root@platform jira]#
如果不使用这种方式,比如使用外部的镜像,可以在yml文件中以如下方式设定link
external_links:
- mysql:本机运行的mysql镜像名
然后使用如下命令创建数据库和用户
创建DB:1. create database jira charset=utf8;
创建用户并授权:2. grant all privileges on jira.* to jira@’%’ identified by ‘jira123’;
首次启动建议使用docker-compose up直接启动,如果有问题可以直接中日志中确认
[root@platform jira]# docker-compose up
Creating network "jira_default" with the default driver
Creating jira_mysql_1 ...
Creating jira_mysql_1 ... done
Creating jira_jira_1 ...
Creating jira_jira_1 ... done
Attaching to jira_mysql_1, jira_jira_1
jira_1 | executing as current user
jira_1 | .....
jira_1 | .... .NMMMD. ...
jira_1 | .8MMM. $MMN,..~MMMO.
jira_1 | .?MMM. .MMM?.
jira_1 |
jira_1 | OMMMMZ. .,NMMMN~
jira_1 | .IMMMMMM. .NMMMN. .MMMMMN,
jira_1 | ,MMMMMM$..3MD..ZMMMMMM.
jira_1 | =NMMMMMM,. .,MMMMMMD.
jira_1 | .MMMMMMMM8MMMMMMM,
jira_1 | .ONMMMMMMMMMMZ.
jira_1 | ,NMMMMMMM8.
jira_1 | .:,.$MMMMMMM
jira_1 | .IMMMM..NMMMMMD.
jira_1 | .8MMMMM: :NMMMMN.
jira_1 | .MMMMMM. .MMMMM~.
jira_1 | .MMMMMN .MMMMM?.
jira_1 |
jira_1 | Atlassian JIRA
jira_1 | Version : 7.11.0
jira_1 |
jira_1 | If you encounter issues starting or stopping JIRA, please see the Troubleshooting guide at http://confluence.atlassian.com/display/JIRA/Installation+Troubleshooting+Guide
jira_1 |
jira_1 | Using JIRA_HOME: /var/atlassian/jira
jira_1 |
...省略
jira_1 | ---------------------------------------------------------------------------------
jira_1 | Heap memory : Used: 54 MiB. Committed: 371 MiB. Max: 742 MiB
jira_1 | Non-heap memory : Used: 65 MiB. Committed: 67 MiB. Max: 1264 MiB
jira_1 | ---------------------------------------------------------------------------------
jira_1 | TOTAL : Used: 118 MiB. Committed: 438 MiB. Max: 2006 MiB
jira_1 | ---------------------------------------------------------------------------------
使用http://localhost:32901开始设定jira
选定I’ll set it up myself
点击Test Connection按钮,确认数据库设定正确之后再进行下一步操作
接下来会一般会等待个几分钟jira会在链接的数据库jira中使用设定的jira用户进行建表操作,中间的过程可以从日志中进行实时的确认
数据库配置完毕之后,相关的配置信息会存放在dbconfig.xml文件中,因为所在目录也被挂载出来了,所以之后可以根据需要进行修改。
数据库配置完成之后,Jira会继续进行系统插件的设定,当这些设定都完成之后,Jira会生成一个Server ID, 这里生成的是BF0L-UGSF-EQC9-FMG7
而这个Server ID是与License挂钩的,POC或者使用的时候可以注册个账户使用评估用的License,当然有license也可以直接使用。
点击generate license就可以生成一个license了, 评估时间实际是1个月
设定用户相关信息
可以同时在安装的时候进行SMTP邮件服务器的设定,关于SMTP的基本知识可以参看:https://blog.csdn.net/liumiaocn/article/details/81131420
设定语言,选择头像之后基本上就可以使用jira-software了
为了后面使用简单,这里创建一个Sample Project
使用scrum方式,设定信息如下
这样,就有了一个带有基本信息和sample数据的项目了,后续就绪介绍如何使用rest api对其进行操作时就会更加便利。
因为在设定时已经设定了SMTP邮件服务器,所以此时此用户会收到相关mail
jira中会发现还有如下Warn信息
WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
这是因为Mysql的版本的问题,提示里面已经说了,在5.5.45+等版本,需要明示的写出来是否使用ssl,即使不使用也需要加上useSSL=false
jira的数据库连接的设定文件位于JIRA_HOME的根目录,名为:dbconfig.xml , 因为此目录已经挂出来了,所以可以直接修改。
[root@platform jira]# ls
conf.d data docker-compose.yml jira
[root@platform jira]# cd jira
[root@platform jira]# ls
analytics-logs caches data dbconfig.xml export import jira-healthcheck-eol.json log logos monitor plugins tmp
[root@platform jira]# cat dbconfig.xml
<jira-database-config>
<name>defaultDSname>
<delegator-name>defaultdelegator-name>
<database-type>mysqldatabase-type>
<jdbc-datasource>
<url>jdbc:mysql://address=(protocol=tcp)(host=192.168.163.118)(port=32911)/jira?useUnicode=true&characterEncoding=UTF8&sessionVariables=default_storage_engine=InnoDBurl>
<driver-class>com.mysql.jdbc.Driverdriver-class>
<username>jirausername>
<password>jira123password>
<pool-min-size>20pool-min-size>
<pool-max-size>20pool-max-size>
<pool-max-wait>30000pool-max-wait>
<validation-query>select 1validation-query>
<min-evictable-idle-time-millis>60000min-evictable-idle-time-millis>
<time-between-eviction-runs-millis>300000time-between-eviction-runs-millis>
<pool-max-idle>20pool-max-idle>
<pool-remove-abandoned>truepool-remove-abandoned>
<pool-remove-abandoned-timeout>300pool-remove-abandoned-timeout>
<pool-test-on-borrow>falsepool-test-on-borrow>
<pool-test-while-idle>truepool-test-while-idle>
<validation-query-timeout>3validation-query-timeout>
jdbc-datasource>
jira-database-config>
[root@platform jira]#
只需要在url标签中加入useSSL=false的设定,并重新启动jira,此Warning即可消除:
jdbc:mysql://address=(protocol=tcp)(host=192.168.163.118)(port=32911)/jira?useUnicode=true&useSSL=true&characterEncoding=UTF8&sessionVariables=default_storage_engine=InnoDB</url>
此Warning并不影响使用,主要是通过设定这个,可以展示JIRA相关的数据信息以及设定信息都在JIRA_HOME中有所保存,当然主要的数据还是保存在数据库中。
https://hub.docker.com/_/mysql/
https://hub.docker.com/r/cptactionhank/atlassian-jira-software/