Docker 搭建 Gitlab 代码存储服务
2026/7/26 6:42:39 网站建设 项目流程

1. Docker 搭建 Gitlab 代码存储服务

1. git 与 gitlab 的区别

git 与 gitlab 的区别:

git 是一种版本控制的系统,用于代码的存储和 版本控制。

gitlab 是基于 git 实现的 web 远程仓库,用于给开发团队提供项目代码的存储,分享,发布的云存储场所。处 gitlab 之外,还有 github,gitee 等工具。

2. gitlab 镜像

在线安装:

查找 gitlab 镜像:

# 查找 gitlab 镜像 docker search gitlab

在线拉取 gitlab 镜像:

# 在线拉取 gitlab 镜像 docker pull gitlab/gitlab-ce:latest

离线安装:

因为 gitlab 镜像体积大,所以在线拉取时间会很长,所以如果有离线安装包,也可以进行离线安装,避免长时间等待。

先在有 gitlab 镜像的计算机上进行导出,再将镜像拷贝到目标计算机上进行导入即可。

# 导出镜像 docker save gitlab -o mygitlab.tar # 导入镜像 docker load -i mygitlab.tar

3. 启动 gitlab 容器

执行命令:

docker run \ -itd \ -p 9980:80 \ -p 9922:22 \ -v /home/gitlab/etc:/etc/gitlab \ -v /home/gitlab/log:/var/log/gitlab \ -v /home/gitlab/opt:/var/opt/gitlab \ --restart always \ --privileged=true \ --name mygitlab \ gitlab/gitlab-ce

命令解释:

  • -i:以交互模式运行容器,通常与 -t 同时使用命令解释
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -d:后台运行容器,并返回容器ID
  • -p 9980:80:将容器内80端口映射至宿主机9980端口,这是访问gitlab的端口
  • -p 9922:22:将容器内22端口映射至宿主机9922端口,这是访问ssh的端口
  • -v /home/gitlab/etc:/etc/gitlab:将容器/etc/gitlab目录挂载到宿主机/home/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
  • --restart always:容器自启动
  • --privileged=true:让容器获取宿主机root权限
  • --name gitlab:设置容器名称为gitlab
  • gitlab/gitlab-ce:镜像的名称,这里也可以写镜像ID

4. 修改配置

修改 gitlab.rb 配置:

# 进入容器内部 docker exec -it mygitlab /bin/bash # 修改 gitlab.rb 配置 vim /etc/gitlab/gitlab.rb # 加入如下配置 # gitlab访问地址,可以写域名。如果端口不写的话默认为80端口 external_url 'http://192.168.47.128' # ssh主机ip gitlab_rails['gitlab_ssh_host'] = '192.168.47.128' # ssh连接端口 gitlab_rails['gitlab_shell_ssh_port'] = 9922 # 让配置生效 gitlab-ctl reconfigure

注意 ip 地址,不要盲目复制,要按照实际的配置写。

修改 gitlab.yml 配置:

# 修改 http 和 ssh 配置 vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml # 文件内修改内容 gitlab: host: 192.168.47.128 port: 9980 # 这里改为9980 https: false

重启:

# 重启gitlab gitlab-ctl restart # 退出容器 exit

至此 gitlab 已经在 Linux 上面部署成功了,可以访问 192.168.47.128:9980 进行验证。

2. Gitlab 修改管理员登录密码

1. gitlab 修改管理员登录密码

1. 进入 gitlab 容器:

# 进入容器内部 docker exec -it mygitlab /bin/bash

2. 进入 gitlab 控制台:

# 进入 gitlab 控制台 gitlab-rails console -e production

3. 查询 id 为 1 的用户,为超级管理员:

# 查询 id 为 1 的用户, 超级管理员 user = User.where(id:1).first

4. 修改密码:

# 修改密码 user.password='abc@123456'

5. 保存并退出:

# 保存并退出 user.save! exit


访问 gitlab,用户名 root,密码 abc@123456:


3. Gitlab 创建个人账号

企业中,项目通常是多人协作完成的,因此需要给每个项目成员都创建个人账号,进行权限分级控制。

1. gitlab 创建个人账号

1. root 账号登录

2. 创建群组

3. 创建用户

4. 重置用户密码

5. 将用户添加到群组

6. 登录个人账号并重置密码

至此,gitlab 个人账号就创建完成了。

4. Git 本地安装及环境配置

1. git 本地安装

git 下载地址:https://git-scm.com/install/

git 安装比较简单,一直点击 next 按钮即可;

2. git 环境配置

配置环境变量:

将 git 安装目录下的 bin 目录,配置为环境变量:

使用 cmd 查看版本信息:

# 查看版本信息 git --version

git 本地配置:

1. 生成 ssh 密钥:

# 1、生成ssh密钥,连续三次回车默认配置 ssh-keygen -t rsa -C "my_email@qq.com"

2. git 用户的配置(首次使用需要配置):

# 2、全局配置git用户名邮箱 git config --global user.email "my_email@xx.com" git config --global user.name "your_name"

3. 查看公钥和私钥:

# 查看私钥 cat /c/Users/26490/.ssh/id_rsa # 查看公钥 cat /c/Users/26490/.ssh/id_rsa.pub

4. 配置个人账号的私钥和公钥:

添加公钥:

5. Git 代码托管

1. git 常用命令

新建代码库:

# 在当前目录, 新建代码库 git init # 新建一个目录, 并初始化为代码库 git init [project-name] # 克隆一个项目到本地 git clone [url]

配置:

# 显示当前的Git配置 git config --list # 编辑Git配置文件 git config -e [--global] # 设置提交代码时的用户信息 git config [--global] user.name "[name]" git config [--global] user.email "[email address]"

增加删除文件:

# 添加指定文件到暂存区 git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 git add [dir] # 添加当前目录的所有文件到暂存区 git add . # 添加每个变化前,都会要求确认 # 对于同一个文件的多处变化,可以实现分次提交 git add -p # 删除工作区文件,并且将这次删除放入暂存区 git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区 git rm --cached [file] # 改名文件,并且将这个改名放入暂存区 git mv [file-original] [file-renamed]

代码提交:

# 提交暂存区到仓库区 git commit -m [message] # 提交暂存区的指定文件到仓库区 git commit [file1] [file2] ... -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区 git commit -a # 提交时显示所有diff信息 git commit -v # 使用一次新的commit,替代上一次提交 # 如果代码没有任何新变化,则用来改写上一次commit的提交信息 git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化 git commit --amend [file1] [file2] ...

远程同步:

# 下载远程仓库的所有变动 git fetch [remote] # 显示所有远程仓库 git remote -v # 显示某个远程仓库的信息 git remote show [remote] # 增加一个新的远程仓库,并命名 git remote add [shortname] [url] # 取回远程仓库的变化,并与本地分支合并 git pull [remote] [branch] # 上传本地指定分支到远程仓库 git push [remote] [branch] # 强行推送当前分支到远程仓库,即使有冲突 git push [remote] --force # 推送所有分支到远程仓库 git push [remote] --all

2. 自动化测试项目推送远程仓库

1. 新建 .gitignore 文件

.gitignore 的作用就是在执行 git add 操作的时候,忽略某些文件;

常用的 python 项目模板:

# system or IDE generated files __debug_bin .vscode/ .idea/ .DS_Store *.bak .commit.txt !.gitkeep # python files venv __pycache__ *.pyc dist *.egg-info .python-version .pytest_cache

说明:* 表示所有,! 表示不忽略;

2. 项目推送到远程仓库

1. 新建项目:

项目创建好之后,记录克隆地址:

2. 创建 git 仓库:

打开项目,创建 git 仓库:

执行 add,将项目添加到暂存区:

执行 commit 提交到本地仓库:

推送到远程仓库:

将项目的克隆连接,放到 URL 输入框:

注意:填写 URL 的时候一定要带上 SSH:// 协议,否则无法推送成功;

创建合并请求:

批准合并请求:

立即合并:

完成之后,代码合并到主分支:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询