【玩转Docker容器 6】基于Docker构建GitLab管理代码

2,069 阅读5分钟

@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

在这里插入图片描述 本地查看 成功 在这里插入图片描述