一、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的提交记录