GitLab 分为 社区版(
Community Edition
,缩写为 CE)和 企业版(Enterprise Edition
,缩写为
EE)。社区版是免费的,而企业版包含一些收费服务,一般来说个人开发者用社区版就足够了。
GitLab是一款基于git仓库的代码管理工具,可以帮助我们团队进行版本控制和协作开发。gitlab还提供了完整的持续集成/持续交付平台,能够自动化代码构建、测试、发布等过程,并且是一款开源的平台,公司也可以根据需求来进行定制化,满足不同团队,适应不同的需求和流程。
gitlab官网:https://gitlab.cn/install/
gitlab官方文档:https://docs.gitlab.com/ee/install/docker.html
gitlab官方文档:https://docs.gitlab.cn/runner/install/docker.html
请看这里:Docker Desktop 安装使用教程
然后如果想先安装一个 Linux 系统,请看这里:使用 Docker Desktop 安装 Centos 系统
GitLab CE Docker 镜像 (社区版)
GitLab EE Docker 镜像 (企业版)
# 查询镜像
docker search gitlab
使用 Docker Desktop 查看 GitLab 镜像
# 拉取最新版本的镜像命令,不加 tag 则默认为最新版本 latest
docker pull gitlab/gitlab-ce
# 拉取最新版本的镜像命令
docker pull beginor/gitlab-ce:latest
# 拉取指定版本的镜像命令
docker pull gitlab/gitlab-ce:15.6.3-ce.0
使用 Docker Desktop 下载 GitLab 镜像:
使用 Linux 下载 GitLab 镜像:
docker run --name gitlab --restart always -p 9980:9980 -p 222:22 -v /usr/local/docker/gitlab/config:/etc/gitlab -v /usr/local/docker/gitlab/logs:/var/log/gitlab -v /usr/local/docker/gitlab/data:/var/opt/gitlab -d gitlab/gitlab-ce
这里解释一下这串代码的情况,复制的话就复制上面的命令
docker run
-d #后台运行,全称:detach
-p 8443:443 #将容器内部端口向外映射
-p 8090:80 #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
-p 8022:22 #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
–restart always #容器自启动
–name gitlab #设置容器名称为gitlab
-v /usr/local/gitlab/etc:/etc/gitlab #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /usr/local/gitlab/log:/var/log/gitlab #与上面一样
-v /usr/local/gitlab/data:/var/opt/gitlab #与上面一样
–privileged=true #让容器获取宿主机root权限 twang2218/gitlab-ce-zh #镜像的名称,这里也可以写镜像ID
使用 Docker Desktop 启动 GitLab 镜像:
使用 Linux 启动 GitLab 镜像:
# 添加-a 参数,把启动的,没有启动的都列出来
docker ps
# 查看Gitlab的运行状态
docker logs -f gitlab
等待执行,启动时间可能会比较长,最终停止滚动,发现系统执行没有报错,系统正常运行。使用ctrl + c 组合键退出。
接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问
# 进入容器
docker exec -it gitlab bash
#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
# 编辑
insert
# 搜索
/搜索内容(如:/external_url )
# 下一个搜索内容
N
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.249.132:8899'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.249.132'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 操作
Esc
# 保存退出
:wq
# 直接退出
:q!
# 重新编译gitlab配置文件
gitlab-ctl reconfigure
# 重启gitlab服务
gitlab-ctl restart
#退出容器
exit
# 重启gitlab容器
docker restart gitlab
在浏览器中访问http:ip:8929,将ip替换为你服务器的ip地址。
编辑命令和上面一样,这里就不在详细写了
①修改/etc/gitlab/gitlab.rb(2个参数对应的端口一致)
unicorn['port'] = 8888
gitlab_workhorse['auth_backend'] = "http://localhost:8888"
②重新执行配置
gitlab-ctl reconfigure
gitlab-ctl restart
# 进入并查看一下初始密码
docker exec -it gitlab cat /etc/gitlab/initial_root_password
然后在浏览器中访问http:ip:8929(将ip替换为你服务器的ip地址),点击Sign in,发现已经可以正常登录了。
输入旧密码,然后输入两次新密码后,点击Save password。这样就设置好了!
我这里用不到注册功能,所以我把注册功能给关掉了。
最后点击save changes保存应用。
详情请查看这里:Gitlab添加组、创建用户和项目、权限管理
外部访问不到可以看看是不是防火墙没有打开
#查看防火墙状态
systemctl status firewalld
#开启防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld
#查看开放端口
firewall-cmd --list-ports
#设置80800端口开放
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#再次查看是否开放
firewall-cmd --list-ports