实现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的提交记录

相关推荐
oscar9994 小时前
打通测试与管理的桥梁:Katalon Studio与Jira的集成
集成·jira·katalon
企鹅郁金香1 天前
使用Docker部署Gitlab和Gerrit (一)
docker·容器·gitlab·gerrit部署
Java 码农2 天前
gitlab gitrunner springboot 多环境多分支部署 (非容器方式,使用原生linux 环境)
linux·spring boot·gitlab
不过如此19512 天前
Jira系统中JQL语句的介绍
python·sql·jira
企鹅郁金香2 天前
Jira部署安装教程
jira·nginx反向代理jira·jira 的仪表盘配置存在问题·jira安装部署教程·jira配置nginx页面报错
不过如此19512 天前
Python操作Jira实现不同项目之间的Issue同步
python·jira·issue
Java 码农2 天前
GitLab + GitLab Runner + Spring Cloud Alibaba 多环境多分支容器化部署方案(docker)
docker·容器·gitlab
毋若成3 天前
公司小白第一课:DACS、gitlab、AI提问词
ai·gitlab·dacs
石工记3 天前
Ubuntu 2024 Docker-Compose部署GitLab+MySQL 8.0保姆式方案
ubuntu·docker·gitlab
tzhou644528 天前
搭建Jenkins+GitLab持续集成环境
ci/cd·gitlab·jenkins