文档下载: https://download.youkuaiyun.com/download/jiangxia_pyy/87405833
1 搭建gitlab的代码管理平台
Windows搭建gerrit或是gitlab都比较麻烦,使用linux搭建比较容易;
1.1 linux使用dock搭建gitlab的代码管理平台
1.1.1 安装dock
参考文档:https://blog.youkuaiyun.com/u012563853/article/details/125295985
(1)卸载原来的docker
apt-get remove docker docker-engine docker.io containerd runc
(2)安装证书
apt update
apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
(3)写入软件信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
(4)安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
(5)启动docker
systemctl start docker
(6)安装docker工具
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
(7)重启docker
service docker restart
(8)查看docker版本
sudo docker version
1.1.2安装gitlab
参考文档:https://baijiahao.baidu.com/s?id=1735404739948635473&wfr=spider&for=pc
1.1.2.1 下载gitlab镜像
执行下面的命令,从 docker 的镜像仓库中下载 gitlab 社区版的镜像
docker pull gitlab/gitlab-ce:latest
镜像有 1g 多,所以需要等待一段时间
1.1.2.2 数据持久化保存
建立了目录 /opt/docker/gitlab 来保存 gitlab 容器中的数据
(1)创建一个用于存放gitlab数据的目录
mkdir -p /opt/docker/gitlab
(2)进入到创建的目录下
cd /opt/docker/gitlab
(3)新建一个docker-compose.yml文件
vim docker-compose.yml
将下面的内容粘贴进去。
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ee:latest'
restart: always
container_name: 'gitlab'
hostname: 'gitlab'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.31.95:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8929:8929'
- '2224:22'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
shm_size: '256m'
注意,其中的external_url后面的ip地址需要修改为自己服务器的内网ip,完成后保存退出。
代码仓库的路径
按照上面的步骤,我这边是在这个目录/data/gitlab/git-data/
也有人在/var/opt/gitlab/git-data/目录,可以通过find命令查找仓库目录。
代码仓库的存储空间扩容
修改代码的存储目录,仓库迁移,设置存储仓库数据的备用目录
参考链接:https://blog.youkuaiyun.com/ss300400a/article/details/102466458

1.1.2.3 运行 gitlab
执行以下命令启动gitlab:
# 将下面的地址改成你存放gitlab持久化数据的地址,比如我的地址为/opt/docker/gitlab
export GITLAB_HOME=/opt/docker/gitlab
docker-compose up -d
注意警告,需要提前把GITLAB_HOME变量设置。
放行8929和2224两个端口。
firewall-cmd --add-port={8929,2224}/tcp --permanent
firewall-cmd --reload
1.1.2.4 管理员访问
访问前,先查一下gitlab的运行状态,在服务器上执行:
docker logs -f gitlab
等待执行,启动时间可能会比较长,最终停止滚动,发现系统执行没有报错,系统正常运行。使用ctrl + c 组合键退出。
(1)使用以下命令查看一下初始管理员的初始密码:
docker exec -it gitlab cat /etc/gitlab/initial_root_password
请将这串字符记录下,每个人得到的初始密码都是不一样的,根据自己的情况。在浏览器中访问http:ip:8929,将ip替换为你服务器的ip地址。
然后点击Sign in,发现已经可以正常登录了。

1.1.2.5 用户访问
用户访问,可以有管理员分配账号和自己注册两种方式;
系统管理员可以关闭账号注册功能,这样可以保证所有的账号都是管理员创建和分配。
最后点击save changes保存应用。


1.1.2.6 其它的问题
上面整个linux安装过程比较顺利,除了命令行sudo权限问题,vim,nettool,firewall-cmd等系统命令,需要apt install之外,只有以下一个复杂一些的问题。
(1)docker-compose启动gitlab不了; 步骤1.1.2.3里面出现了错误;
出错内容:iptables: No chain/target/match by that name.
原因: docker对网关的操作有点问题;
解决办法:重启系统;
1.1.3 gilab代码管理平台部署到外网
1. 查询端口映射情况
netsh interface portproxy show v4tov4
2. 查询某一个IP的所有端口映射情况
netsh interface portproxy show v4tov4 | find "[IP]"
例:netsh interface portproxy show v4tov4 | find "192.168.52.140"
3. 增加一个端口映射
netsh interface portproxy add v4tov4 listenaddress=[外网IP] listenport=[外网端口] connectaddress=[内网IP] connectport=[内网端口]
例:netsh interface portproxy add v4tov4 listenaddress=192.168.52.140 listenport=8080 connectaddress=192.168.116.129 connectport=8929
4. 删除一个端口映射
netsh interface portproxy delete v4tov4 listenaddress=[外网IP] listenport=[外网端口]
例:netsh interface portproxy delete v4tov4 listenaddress=192.168.52.140 listenport=8080
浏览器访问192.168.52.140:8080,进入登录页面。

1.1.4 gitlab的页面使用方法