在软件开发的世界里,GitLab 就像一个超级智能的 “代码管家”。它基于 Git 版本控制系统开发,不仅能帮开发者安全存储代码、清晰记录每一次修改,还自带强大的项目管理、持续集成与持续部署(CI/CD)等功能。无论是小型开发团队,还是大型企业项目,GitLab 都能高效协调团队成员间的协作,从代码编写、审核到上线发布,全程保驾护航,让开发流程变得井井有条。接下来,就让我们借助 Docker ,轻松搭建属于自己的 GitLab 平台,开启高效开发之旅!
以下操作基于Docker-desktop进行操作,还没安装docker的小伙伴可以先去安装,网上有好多详细的教程,这里不过多赘述。
1、win+r,输入cmd打开命令框
2、拉取gitlab镜像
docker pull gitlab/gitlab-ce:latest
3、查看镜像,可以确定自己是否拉取成功
docker images
4、创建容器
docker run -d -p 6680:80 -p 6622:22 --restart always --name Gitlab -v /docker/gitlab/etc/gitlab:/etc/gitlab -v /docker/gitlab/var/log/gitlab:/var/log/gitlab -v /docker/gitlab/var/opt/gitlab:/var/opt/gitlab --privileged=true gitlab/gitlab-ce
这时可以看到我们的docker会出现一个新的容器
命令解释:
1. docker run
这是 Docker 用于创建并启动新容器的基础命令。
2. -d
该参数表示让容器在后台以守护进程的模式运行,这样容器启动后不会占用当前的终端会话。
3. -p 6680:80 -p 6622:22
这是端口映射参数。具体含义如下:
-p 6680:80:把宿主机的 6680 端口映射到容器内部的 80 端口。通常,GitLab 的 Web 界面默认使用 80 端口,所以可以通过访问宿主机的 6680 端口来访问 GitLab 的 Web 界面。
-p 6622:22:将宿主机的 6622 端口映射到容器内部的 22 端口。GitLab 使用 22 端口进行 SSH 连接,这样就能通过宿主机的 6622 端口进行 SSH 操作。
4. --restart always
此参数设定了容器的重启策略为 always,意味着无论在何种情况下(如 Docker 守护进程重启、容器崩溃等),容器都会自动重启。
5. --name Gitlab
为容器指定一个名称,这里将容器命名为 Gitlab,之后在管理容器时可以更方便地通过这个名称来操作。
6. -v /docker/gitlab/etc/gitlab:/etc/gitlab -v /docker/gitlab/var/log/gitlab:/var/log/gitlab -v /docker/gitlab/var/opt/gitlab:/var/opt/gitlab
这些是数据卷挂载参数,其作用是将宿主机的目录与容器内的目录进行关联,以实现数据的持久化存储。具体如下:
-v /docker/gitlab/etc/gitlab:/etc/gitlab:把宿主机的 /docker/gitlab/etc/gitlab 目录挂载到容器内的 /etc/gitlab 目录,这个目录包含了 GitLab 的配置文件。
-v /docker/gitlab/var/log/gitlab:/var/log/gitlab:将宿主机的 /docker/gitlab/var/log/gitlab 目录挂载到容器内的 /var/log/gitlab 目录,该目录存储着 GitLab 的日志文件。
-v /docker/gitlab/var/opt/gitlab:/var/opt/gitlab:把宿主机的 /docker/gitlab/var/opt/gitlab 目录挂载到容器内的 /var/opt/gitlab 目录,这里存放着 GitLab 的数据文件。
7. --privileged=true
赋予容器更高的权限,使得容器内的进程能够访问更多的系统资源和设备,有些操作可能需要这种特权才能正常执行。
8. gitlab/gitlab-ce
这是要使用的 Docker 镜像名称,表明使用的是 GitLab 社区版的官方镜像。
5、进入容器
docker exec -it Gitlab /bin/bash
6、进入gitlab.rb文件添加内容
vi /etc/gitlab/gitlab.rb
添加以下内容,其中的10.200.14.7为我宿主机的ip,你们需要根据自己电脑的ip自行修改
其中6622是指容器22端口映射到我们宿主机的6622端口
external_url 'http://10.200.14.7'
gitlab_rails['gitlab_ssh_host'] = '10.200.14.7'
gitlab_rails['gitlab_shell_ssh_port'] = 6622
7、让配置生效
gitlab-ctl reconfigure
8、进入gitlab.yml文件修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
修改以下内容,将原本的80改为6680
9、重启gitlab
gitlab-ctl restart
10、在浏览器进行访问测试,http://自己的ip:6680/
11、重置管理员账户密码
第一次访问,以root用户登录,默认管理员账号是root,但是初始密码不知道,
我们可以之间修改root密码
(1)进入容器内部
docker exec -it gitlab /bin/bash
(2)进入控制台
gitlab-rails console -e production
(3) 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
(4)修改密码为xxxxx
user.password='xxxxx'
(5)保存
user.save!
(6)退出
exit