RockyLinux 部署 Gitlab

GitLab 是一个基于 Git 的开源仓库管理系统,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。GitLab分为社区版(GitLab CE)和企业版(GitLab EE),其中社区版是免费的。

虚拟机建议 cpu 分配 2核 以上,内存 4G 以上

一、环境准备

复制代码
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 查看防火墙状态
firewall-cmd --state

二、使用 docker 部署

1、安装 docker
复制代码
# 添加阿里云docker-ce仓库
dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 列出当前系统中所有可安装的 docker-ce 版本,并按照版本号从高到低进行排序,同时显示重复的版本。
dnf list docker-ce --showduplicates | sort -r
# 安装最新版本 docker-ce,也可以指定版本安装(dnf install -y docker-ce-3:28.1.1-1.el9)
dnf install -y docker-ce
# 启用Docker Cgroup用于限制进程的资源使用量,如CPU、内存资源
# 创建目录,存放 docker 的配置文件
mkdir -p /etc/docker
# 创建并写入 /etc/docker/daemon.json 文件,设置 Docker 使用 systemd 作为 Cgroup 驱动
# registry-mirrors 配置:docker 镜像加速器的地址列表。
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
    "https://docker.m.daocloud.io"
  ]
}
EOF
# 设置 docker 开机自启
systemctl enable docker
# 启动 docker
systemctl start docker
# 查看 docker 状态
systemctl status docker
2、下载 gitlab 社区版
复制代码
docker pull gitlab/gitlab-ce:latest
3、安装 gitlab

方式 1: 使用 Docker 直接运行 GitLab CE

复制代码
# hostname 替换为虚拟机 ip
docker run -d \
  --name gitlab \
  --hostname 192.168.0.28 \
  --restart unless-stopped \
  -e GITLAB_OMNIBUS_CONFIG="
    external_url 'http://192.168.0.28';
    gitlab_rails['gitlab_shell_ssh_port'] = 2222;
  " \
  -p 80:80 \
  -p 443:443 \
  -p 2222:22 \
  -v /srv/gitlab/config:/etc/gitlab \
  -v /srv/gitlab/logs:/var/log/gitlab \
  -v /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

方式 2:使用 Docker Compose 安装(推荐)

root 目录下创建 gitlab_deploy.yaml 文件,内容如下:
复制代码
version: '3.6'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: 'gitlab'
    restart: unless-stopped
    hostname: '192.168.0.28' # hostname 替换为虚拟机 ip
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.0.28' # 替换为虚拟机 ip
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    ports:
      - '80:80'
      - '443:443'
      - '2222:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'

# 启动 gitlab 服务
docker compose -f gitlab_deploy.yaml up -d

# 等待几分钟让 gitLab 完全启动(首次启动可能需要较长时间)
# 可以通过 docker ps 查看 gitlab 是否完全启动,如下所示,STATUS 为 healthy 后说明成功启动,如果是 starting 说明还在启动中

[root@gitlab ~]# docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED         STATUS                   PORTS                                                                                                                   NAMES
b4364289a9c2   gitlab/gitlab-ce:latest   "/assets/init-contai..."   4 minutes ago   Up 4 minutes (healthy)   0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:2222->22/tcp, [::]:2222->22/tcp   gitlab

# 访问 http://192.168.0.28
# 用户名 root 
# 用户密码在 /srv/gitlab/config/initial_root_password 文件中
# 使用命令 cat /srv/gitlab/config/initial_root_password 查看登录密码
# 里面的Password: 后面的值就是 root 默认的登录密码
# 登录 gitlab 后,先重置密码

三、常用 git 命令

1、初始化与克隆
复制代码
# 在本地创建新仓库
git init

# 克隆远程 Git 仓库到本地
git clone http://gitlab.example.com/group/project.git
2、提交代码
复制代码
# 添加文件到暂存区
git add filename.txt        # 添加单个文件
git add .                   # 添加所有修改文件

# 提交暂存区到本地仓库
git commit -m "提交说明"

# 推送本地分支到远程仓库(即与之关联的远程分支)
git push
# 推送到 main 分支
git push origin main
3、拉取更新
复制代码
# 拉取远程更新并合并
git pull origin main

# 仅拉取不自动合并
git fetch origin
4、分支管理
复制代码
# 创建新分支但不切换
git branch feature

# 创建并切换到新分支
git checkout -b feature

# 切换回主分支
git checkout main

# 合并指定分支到当前分支
git merge feature

# 删除本地分支
git branch -d feature

# 删除远程分支
git push origin --delete feature
5、标签管理
复制代码
# 创建轻量标签
git tag v1.0

# 创建带注释的标签
git tag -a v1.0 -m "版本1.0发布"

# 推送标签到远程
git push origin v1.0

# 查看所有标签
git tag
6、撤销与回滚
复制代码
# 撤销工作区修改
git checkout -- filename.txt

# 撤销暂存区的文件
git reset HEAD filename.txt

# 回退到指定提交
git reset --hard commit_id
7、查看状态与日志
复制代码
# 查看工作区状态,包括哪些文件被修改、添加或删除:
git status

# 查看提交历史
git log                   # 标准日志
git log --oneline         # 简化日志
git log --graph           # 带分支图的日志

# 查看工作区与暂存区的差异
git diff

# 查看暂存区与本地仓库的差异
git diff --staged

# 查看两次提交之间的差异
git diff commit1 commit2
8、其它常用
复制代码
# 配置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
相关推荐
*_潇_*2 小时前
0095__日常--记一次gitlab Runner配置与CI/CD环境搭建流程
ci/cd·gitlab
无心水3 小时前
【Harness:落地实战】24、Harness CI/CD+GitOps深度实战:智能交付与渐进发布——企业级云原生DevOps全解析
人工智能·ci/cd·云原生·openclaw·harness·hermes·honcho
qq_452396233 小时前
第十九篇:《Docker 在生产环境中的 CI/CD 实践》
ci/cd·docker·容器
smartpi_ai4 小时前
CI-73T1 低功耗选型误区:不支持休眠模式的替代方案指南
人工智能·ci/cd·语音识别
codeejun4 小时前
每日一Go-75、CI/CD 到 K8s:云原生ArgoCD / GitOps 全流程实战(Go + Gin)
ci/cd·云原生·golang
ok406lhq13 小时前
用 MonkeyCode 8 小时搭建自动化内容站:AI Coding 平台实战复盘
ci/cd·vue·ai编程·自动化部署·monkeycode
Rain5091 天前
实战:搭建 AI Code Review 自动化流水线
前端·人工智能·git·ci/cd·自动化·ai编程·代码复审
张小凡vip1 天前
gitlab的ci配置文件yaml参数说明
git·ci/cd·gitlab
游戏开发爱好者81 天前
Linux 自动上传 App Store Connect:把 IPA 上传流程接进CI工作流
linux·运维·ios·ci/cd·小程序·uni-app·iphone