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

相关推荐
LXMXHJ21 分钟前
代码管理之Gitlab
gitlab
渔舟唱晚@9 小时前
构建基于Jenkins、GitLab与Nginx的自动化项目部署
nginx·gitlab·jenkins
锅总9 小时前
GitLab 使用过程中常见问题及解决方案
gitlab
Blue桃之夭夭10 小时前
Git Github Gitlab与Gitee的关系
git·gitee·gitlab
小诸葛的博客11 小时前
如何使用docker启动一个gitlab
docker·容器·gitlab
锅总1 天前
GitLab 备份与恢复
数据库·gitlab
与君共勉121381 天前
Jenkins-Git Parameter 插件实现指定版本的发布和回滚
linux·服务器·gitlab·jenkins
极地星光1 天前
C++自动化测试:GTest 与 GitLab CI/CD 的完美融合
c++·ci/cd·gitlab
与君共勉121381 天前
Jenkins-Gitlab 前端项目自动化部署
linux·服务器·git·gitlab·jenkins
pumpkin845142 天前
GitLab CI 配置
gitlab