【玩转Docker容器 6】基于Docker构建GitLab管理代码
@TOC
推荐个人Docker文章,讲的非常详细
【玩转Docker容器 1】Dockerd的详解及安装【玩转Docker容器 2】基于Docker一分钟搭建完 Jdk、Mysql、Nginx、Redis、Tomcat环境
【玩转Docker容器 3】基于Docker部署SpringBoot项目
【玩转Docker容器 4】基于Docker搭建Docker私服,以及如何使用Docker私服详解
【玩转Docker容器 5】基于Docker搭建Maven私服,以及项目如何使用Maven私服详解
【玩转Docker容器 6】基于Docker构建GitLab管理代码
【玩转Docker容器 7】基于Docker安装Jenkins实现自动化构建、部署、测试、监控项目
1.什么是GitLab
GitLab 是一个用于仓库管理系统的开源项目,是一个基于Git实现的在线代码管理仓库软件(一般都是私有的,用于在企业、学校等内部网络搭建的git私服)
2.Git GitHub GitLib GitLab有什么区别
Git 是一种版本控制系统,是一个命令工具,实现上传下载 GitLib 是用于实现Git 功能的开发库 GitHub 是一个基于Git 实现的在线代码仓库,向互整个互联网开放 GitLab 是一个基于Git 实现的在线代码仓库软件,你可以用gitlab自己搭建一个类似于GitHub一样的系统,(一般都是私有的,用于在企业、学校等内部网络搭建的Git 私服)
3.基于Docker部署GitLab环境搭建
1.下载GitLab镜像文件
注意:我这里是已经搭建了Docker的Linux系统,不会的可以看我之前的文章
下载命令:有可能比较慢,而且运行起来比较耗内存
注意:一定要配置阿里云的加速镜像,要不然下载要个把小时
docker pull beginor/gitlab-ce:11.0.1-ce.0
复制代码
2.创建GitLab配置
把GitLab的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 用于以后升级, 因此请先准备这三个目录。以后更新或者卸载容器,GitLab的重要文件也还存在
mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data
复制代码
3.运行GitLab容器
docker run \
--detach \
--publish 8443:443 \
--publish 8877:80 \
--name gitlab \
--restart unless-stopped \
-v /mnt/gitlab/etc:/etc/gitlab \
-v /mnt/gitlab/log:/var/log/gitlab \
-v /mnt/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.0.1-ce.0
复制代码
4.设置Http访问GitLab
修改/mnt/gitlab/etc/gitlab.rb
编辑文件:
vi /mnt/gitlab/etc/gitlab.rb
复制代码
找到GitLab URL 有可能没有注释:注意,没有注释就加上这一条 把最后一行取消注释,改成:http://IP地址,这里写自己的IP地址 没有注释也加上这一条
external_url 'http://120.77.0.58'
复制代码
输入esc退出编辑模式,再输入:wq保存并退出
5.将host的值改成映射的外部主机ip地址和端口
修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
编辑文件:
vi /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml
复制代码
找到关键字 * ## Web server settings * 将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址 改成:自己的IP地址 端口号,一定要关闭端口号防火墙哟,要不然无法访问,端口号默认是80也可以,这个无所谓 输入esc退出编辑模式,再输入:wq保存并退出
6.重启GitLab容器,实现访问
输入查看容器命令,找到git容器id:
docker ps
停止容器:
docker stop 容器id
删除容器:
docker rm 容器id
启动gitLab镜像:
docker run \
--detach \
--publish 8443:443 \
--publish 8877:80 \
--name gitlab \
--restart unless-stopped \
-v /mnt/gitlab/etc:/etc/gitlab \
-v /mnt/gitlab/log:/var/log/gitlab \
-v /mnt/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.0.1-ce.0
复制代码
启动后等待30秒左右,30秒之前访问可以会抱错502,等待一下就好了
访问http://120.77.0.58:8877/ 成功!
4.如何使用GitLab实现项目管理
1.登陆
第一次进入要设置密码,自己设置就行了 设置完之后登陆,用户名是root,密码是你刚刚设置的,也许设置密码会抱错,但是还是可用使用的,登陆
2.创建项目
这里输入名称,设置可见点击为私有,点击创建
3.创建其他用户,赋予权限
1.退出登录
2.注册一个新的用户
3.注册完了先不登录,这时使用一开始的登录root用户去赋予权限
这是root用户下的界面,在root用户进行操作
1.点击到设置-->成员里面去 2.选择成员,选择权限(选择开发人员),点击添加
看此下下方,已成功添加
3.切换用户登录 发现已经有项目了
3.使用Git上传下载项目
我这里是配置不是root用户,我配置的是新添加的用户,其实操作是一样的,新用户上传第一次上传都需要配置
1.第一次上传登录
在本地安装git工具,安装完成后需要配置全局的用户名和邮箱。
打开git bash 输入如下命令:(命令位置在GitLab仓库里面可以看得到)
git config --global user.name "李杰"
git config --global user.email "468671109@qq.com"
复制代码
2.提交项目
其实这里命令都已经告诉我们了,只需要复制粘贴就好了,这里有一个地方不一样,注意
上传命令:
git init
注意:这条命令不一样,要加上设置的端口号
git remote add origin http://120.77.0.58:8877/root/boot-tool.git
git add .
git commit -m "Initial commit"
git push -u origin master
复制代码
成功
3.下载项目
1.创建一个本地的版本库(即新建一个文件夹)
2.选中文件夹右键--Git bash here--进入控制面板,
输入命令git init 初始化化文件夹,把这个文件夹变成Git可管理的仓库
git init
复制代码
3.把gitee(码云)上的项目地址复过来,
git clone "你的仓库地址",点击回车,注意要加端口号
git clone http://120.77.0.58:8877/root/boot-tool.git
复制代码
本地查看 成功