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

相关推荐
测试开发技术2 天前
git rm 命令与系统的 rm 命令有什么区别?
git·gitlab·github·面试题
云和数据.ChenGuang3 天前
关闭 GitLab 升级提示的详细方法
运维·自动化·gitlab·es运维
读创商闻3 天前
极狐GitLab CEO 柳钢——极狐 GitLab 打造中国企业专属 AI 编程平台,引领编程新潮流
人工智能·gitlab
小川zs3 天前
gitee某个分支合并到gitlab目标分支
gitee·gitlab
你的人类朋友3 天前
✨【GitLab】【CI/CD】核心概念一览
gitlab·自动化运维·devops
Gold Steps.4 天前
基于 Gitlab、Jenkins与Jenkins分布式、SonarQube 、Nexus 的 CiCd 全流程打造
运维·ci/cd·gitlab·jenkins
咚咚?4 天前
基于gitlab 构建CICD发布到K8S 平台
容器·kubernetes·gitlab
荔枝吻8 天前
【保姆级喂饭教程】GitLab创建用户规范,分支开发规范,提交日志规范
gitlab·git规范·分支规范
云畅新视界8 天前
从 CODING 停服到极狐 GitLab “接棒”,软件研发工具市场风云再起
人工智能·gitlab