实现jira与gitlab的关联

一、docker安装gitlab

bash 复制代码
docker run --detach \
  --restart always \
  --publish 8433:443 --publish 880:80 --publish 822:22 \
  --name gitlab \
  --volume /home/gitlab/config:/etc/gitlab \
  --volume /home/gitlab/logs:/var/log/gitlab \
  --volume /home/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

-p 880:80 将容器内80端口映射至宿主机880端口,这是访问gitlab的端口
-p 822:22 将容器内22端口映射至宿主机822端口,这是访问ssh的端口
web访问gitlab: http://192.168.11.45:880
注册,使用注册的用户登录报错: Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error .
根据 (3条消息) Your account is pending approval from your GitLab administrator and hence blocked._唐僧骑白马的博客-CSDN博客所述, 更改管理员root的密码

password可能不符合密码规范要求,请自行更换成你自己的密码 。u.save返回True表明密码设置成功。
重启gitlab容器
再次用 root/your_password登录。
问题:按照上述部署,gitlab创建项目的时候,生成的URl访问地址是按容器的hostname来生成的,也就是容器的id。

重点:接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问

>>> 需要在 gitlab.rb 中配置http协议访问的地址, 把external_url改成部署机器的域名或者IP地址

##注意不要重启
>>> 修改 gitlab.yml (这一步原本不是必须的,因为 /etc/gitlab/gitlab.rb 内配置会 会映射到 /var/opt/gitlab/gitlab-rails/etc/gitlab.yml 这个文件,为了防止没有成功覆盖所以我在这里进行配置,当然你也可以选择不修改gitlab.rb直接修改这里)



让修改后的配置生效: gitlab-ctl reconfigure
重启gitlab: gitlab - ctl restart
退出容器: exit
web访问gitlab(eaxternal_url配置的就是这个) http://192.168.11.45:880,但此时你会 发现gitlab访问不了
根据 修改Docker部署gitlab的外部访问地址和端口_修改gitlab的访问url和端口_b哈利路亚d的博客-CSDN博客所言,因为默认会用这个端口号(external_url ' http://192.168.11.45:880')作为gitlab的nginx的监听端口。但因为我们这里其实是监听的80端口,所以要额外配置:

让修改后的配置生效: gitlab-ctl reconfigure
此时访问gitlab: http://192.168.11.45:880成功,查看仓库的下载地址如下:

经测试、HTTP与SSH方式均可成功拉取代码到本地。

二、docker安装jira、MySQL

2.1、安装Jira

制作JIra破解镜像:
Dockerfile:

bash 复制代码
FROM cptactionhank/atlassian-jira-software:7.13.1
USER root

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

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

网上查找atlassian-agent.jar文件,将atlassian-agent.jar文件放置在Dockerfile同目录下。
构建镜像:

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

运行Jira容器: / home / jira / data与 / home / jira / logs目录不用提前创建,运行容器会自动在本地生成

bash 复制代码
docker run --detach \
  --restart always \
  -p 8091:8080 \
  -v /home/jira/data:/var/atlassian/jira \
  -v /home/jira/logs:/opt/atlassian/jira/logs \
  --name jira \
  jira/jira:7.13.1

2.2、安装MySQL与创建数据库

bash 复制代码
docker run --name mysql -d -p 3336:3306 -e MYSQL_ROOT_PASSWORD=Root_123 mysql:5.7 

注意可修改密码


在Jira数据库设置中会用到, 必须提前创建数据库jira

bash 复制代码
# 进入mysql容器
docker exec -it mysql /bin/bash
# 在容器中进入mysql,密码修改了的请修改命令
mysql -uroot -pRoot_123
# 创建jira数据库
CREATE DATABASE jira CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
# 退出mysql
exit
# 退出容器
exit

2.3、web访问Jira并设置

web访问: http://192.168.11.45:8091

然后我们选择第二项,进入下一步:

数据库设置,选择数据库类型,输入mysql服务的host,然后输入上面的数据库的名称和密码,然后进行下一步,然后就会到下面的页面。

点击"下一步",弹出设置许可证密钥:

许可证生成步骤:
步骤1:进入容器内
docker exec -it jira /bin/bash
步骤2:到atlassian-agent.jar所在目录
cd /opt/atlassian/jira
java -jar atlassian-agent.jar -d -m test@test.com -n ZQ -p jira -o http://92.168.11.45:7801 -s B5HX-6060-0LA3-HQ6T

  • 通过破解包生成激活码

  • -p 产品名称 jira

  • -m 邮箱( test @ test.com

  • -n 用户名,这个随意

  • -o 部署的入口地址

  • -s 服务器ID(BY9B-GWD1-1C78-K2DE)


拷贝生成的许可证,点击"下一步":

设置管理员账户:

设置电子邮件通知:

初始页面:

三、Jira与Gitlab关联

3.1、在gitlab里设置jira集成


Web URL:输入Jira地址即可
Jira API URL:和Jira地址相同时,不需要输入
Username orEmail: Jira账号
Enter new Password orAPItoken:Jira账号的密码
测试配置ok:

3.2、Jira创建一个问题

3.3、 象征性提供一个代码,附上Jira的ID

3.4、 在gitlab里,可以看到本次提交commit信息里,关联的jira需求id,且可以跳转的


3.5、 在jira需求问题时,也可以看到gitlab的提交记录

相关推荐
1candobetter15 小时前
GitLab 项目创建与分支管理全流程
gitlab
林鸿群2 天前
Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)
linux·ubuntu·gitlab·私有部署·代码托管·ubuntu 26.04·omnibus
ascarl20103 天前
IDEA 一直弹 GitLab 登录,VS Code 却能正常 `git push`?问题排查记录
git·gitlab·intellij-idea
公众号:ITIL之家3 天前
ITSM 工具选型指南 2026:ServiceNow、Jira、BMC 到底怎么选?
jira
xyzhan5 天前
人工智能代理AI Agent如何自动化CRM、Jira、计费和Slack之间的工作流程
运维·人工智能·自动化·jira·ai agent
企鹅郁金香5 天前
Gitlab和Confluence和Svn的备份
svn·gitlab·confluence·gitlab备份·svn备份·confluence备份
barbyQAQ5 天前
GitLab CI/CD 基本用法指南
java·ci/cd·gitlab
云中飞鸿6 天前
git、svn;TortoiseGit、TortoiseSVN;gitlab、github、bitbucket、bamboo有什么关系?
git·svn·gitlab
007张三丰8 天前
掌握核心!Git最常用的15个命令行:从入门到实战详解
git·gitlab·github·git命令行·常用命令行
一袋米扛几楼9810 天前
【JIRA】Scrum 到底是什么?
scrum·jira