学习思路:
1、镜像拉取
#拉取最新的gitlab镜像
docker pull gitlab/gitlab-ce
当然还可以指定版本拉取
docker pull gitlab/gitlab-ce:xxx
2、运行容器
docker run -d -p 8443:443 -p 8080:80 -p 8022:22 --name gitlab --restart always -v $PWD/config:/etc/gitlab -v $PWD/logs:/var/log/gitlab -v $PWD/data:/var/opt/gitlab gitlab/gitlab-ce
参数解释:
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# --restart always:失败自动重启
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
# $PWD在本目录(当然也可以指定绝对路径)
建议:在执行该命令时自己新建gitlab包路径,因为会将容器内文件映射到本目录下
到此为止浏览器访问8080端口就可以了
jira是Atlassian公司的收费产品,主要包含jira core(基本业务管理)、jira Align(企业级敏捷规划)、jira Software(项目与问题追踪);目前企业用的基本都是Jira Software,我们这里安装的也是
1、拉取镜像
docker pull dchevell/jira-software:7.13.0
当然也可以不带版本号,默认拉取最新的
2、运行容器
docker run -d -it -p 8080:8080 --privileged -m 2048M -v $PWD/jira-data:/var/atlassian/application-data/jira -v /etc/localtime:/etc/localtime --name jira dchevell/jira-software:7.13.0
3、连接mysql
首先下载jia包(mysql-connector-java-5.1.49.jar)可以mysql官网下载
然后进行如下操作
#拷贝jar包到容器jira的lib下
docker cp mysql-connector-java-5.1.49-bin.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
#进入容器修改jar包权限
docker exec -it jira bash
chmod 755 /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/mysql-connector-java-5.1.49-bin.jar
#退出容器
exit
#重启容器
docker restart jira
4、web页面设置属性
访问8080端口
选择语言
选择《我将设置它自己》
线上选择其他数据库
填写数据库配置
申请许可证关键字,点击「生成Jira试用许可证」
需要注册账号,注册完之后,选择相关信息,点击「Generate License」,会自动跳回到这个页面并填充信息,
接着点击「下一步」
等待一会就进入设置管理员页面,填入一些信息即可,接着「下一步」点击「完成」即完成设置
注意:收费的还未破解
点击要配置的项目->Settings->Integrations->Jira
Web URL:指向Jira实例web接口的基本URL,该接口被链接到这个GitLab项目。例如,https://jira.example.com
Transition ID:这个是jira工作流程的流程id
流程id可以访问:http://*.*.*.*:8080/rest/api/2/issue/FTBQ-5/transitions
FTBQ-5:是你jira创建的任何一个问题的号
此时会返回
{
"expand": "transitions",
"transitions": [{
"id": "11",
"name": "待办",
"to": {
"self": "http://:8080/rest/api/2/status/10000",
"description": "",
"iconUrl": "http://106.53.239.230:8080/",
"name": "待办",
"id": "10000",
"statusCategory": {
"self": "http://:8080/rest/api/2/statuscategory/2",
"id": 2,
"key": "new",
"colorName": "blue-gray",
"name": "待办"
}
}
}, {
"id": "21",
"name": "处理中",
"to": {
"self": "http://:8080/rest/api/2/status/3",
"description": "此问题正在被经办人积极处理。",
"iconUrl": "http://106.53.239.230:8080/images/icons/statuses/inprogress.png",
"name": "处理中",
"id": "3",
"statusCategory": {
"self": "http://:8080/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate",
"colorName": "yellow",
"name": "处理中"
}
}
}, {
"id": "31",
"name": "完成",
"to": {
"self": "http://:8080/rest/api/2/status/10001",
"description": "",
"iconUrl": "http://:8080/",
"name": "完成",
"id": "10001",
"statusCategory": {
"self": "http://:8080/rest/api/2/statuscategory/3",
"id": 3,
"key": "done",
"colorName": "green",
"name": "完成"
}
}
}]
}
json中的:"id": "31"就是流程id填入Transition ID即可,多个可用逗号(,)隔开
具体可以看gitlab文档:https://docs.gitlab.com/ce/user/project/integrations/jira.html
1、我们在jira创建问题(FTBQ-2为例)
然后idea修改代码commit时备注填写以问题好开头,然后push
到jira中的效果就是
2、我们再看Transition ID的作用
这里官网提供了三个前缀:触发场景就是在代码合并到默认分支(master)时jira自动触发相应操作
Resolves PROJECT-1
Closes PROJECT-1
Fixes PROJECT-1
还是以FTBQ-2为例,commit是备注写 Close FTBQ-2 测试11111
然后提交合并到默认分支master,jira中会自动从处理中转为完成
gitlab官网文档
jira连接数据库文档
公众号主要记录各种源码、面试题、微服务技术栈,帮忙关注一波,非常感谢