docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解

文章目录

  • 一、环境准备
    • [1.1 docker 安装](#1.1 docker 安装)
  • [二、gitlab 搭建](#二、gitlab 搭建)
    • [2.1 环境准备](#2.1 环境准备)
    • [2.2 启动gitlab容器](#2.2 启动gitlab容器)
    • [2.3 验证 GitLab 启动](#2.3 验证 GitLab 启动)
    • [2.4 备份和恢复](#2.4 备份和恢复)
    • [2.5 升级 GitLab](#2.5 升级 GitLab)
  • 三、已搭建的gitlab升级为HTTPS访问
    • [3.1 准备 SSL 证书](#3.1 准备 SSL 证书)
    • [3.2 创建目录](#3.2 创建目录)
    • [3.3 复制证书](#3.3 复制证书)
    • [3.4 修改 GitLab 配置](#3.4 修改 GitLab 配置)
    • [3.5 重新配置并重启 GitLab](#3.5 重新配置并重启 GitLab)
    • [3.6 重启 GitLab 容器:](#3.6 重启 GitLab 容器:)
  • [四、生成 Cloudflare Origin CA 证书和私钥](#四、生成 Cloudflare Origin CA 证书和私钥)
    • [4.1 Cloudflare 如何获取SSL 证书和私钥](#4.1 Cloudflare 如何获取SSL 证书和私钥)
    • [4.2 下载并保存证书和私钥文件](#4.2 下载并保存证书和私钥文件)
  • 五、gitlab浏览器使用
    • [5.1 修改初始密码](#5.1 修改初始密码)
      • [5.1.1 获取默认密码](#5.1.1 获取默认密码)
      • [5.1.2 修改初始密码](#5.1.2 修改初始密码)
    • [5.2 创建新用户](#5.2 创建新用户)
      • [5.2.1 使用 Web 界面](#5.2.1 使用 Web 界面)
      • [5.2.2 使用命令行(API)](#5.2.2 使用命令行(API))
    • [5.3 创建新项目](#5.3 创建新项目)
      • [5.3.1 通过 Web 界面创建项目](#5.3.1 通过 Web 界面创建项目)
      • [5.3.2 通过命令行使用 API 创建项目](#5.3.2 通过命令行使用 API 创建项目)
    • [5.4 分配角色](#5.4 分配角色)
      • [5.4.1 分配项目角色](#5.4.1 分配项目角色)
      • [5.4.2 分配组角色](#5.4.2 分配组角色)
    • [5.5 允许用户上传和下载代码](#5.5 允许用户上传和下载代码)
      • [5.5.1 上传代码](#5.5.1 上传代码)
      • [5.5.2 下载代码](#5.5.2 下载代码)
  • 六、常见错误处理
    • [6.1 端口被占用](#6.1 端口被占用)
    • [6.2 浏览器访问时显示 Error code 522](#6.2 浏览器访问时显示 Error code 522)
      • [6.2.1 检查服务器防火墙配置(云厂商安全组)](#6.2.1 检查服务器防火墙配置(云厂商安全组))
      • [6.2.2 确认服务器端口开放](#6.2.2 确认服务器端口开放)
      • [6.2.3 确认 Docker 容器端口映射](#6.2.3 确认 Docker 容器端口映射)
      • [6.2.4 检查服务器上的 GitLab 配置](#6.2.4 检查服务器上的 GitLab 配置)
    • [6.3 浏览器访问时显示 Error code 521](#6.3 浏览器访问时显示 Error code 521)
      • [6.3.1 确认 Web 服务器正在运行](#6.3.1 确认 Web 服务器正在运行)
      • [6.3.2 检查 Web 服务器日志](#6.3.2 检查 Web 服务器日志)
      • [6.3.3 检查 Docker 容器端口映射](#6.3.3 检查 Docker 容器端口映射)
      • [6.3.4 检查服务器防火墙配置(云厂商安全组)](#6.3.4 检查服务器防火墙配置(云厂商安全组))
      • [6.3.5 确认 Cloudflare 的 SSL/TLS 配置](#6.3.5 确认 Cloudflare 的 SSL/TLS 配置)
      • [6.3.6 为 GitLab 设置单独的 Page Rule](#6.3.6 为 GitLab 设置单独的 Page Rule)
  • [七、常见的 gitlab-ctl 命令](#七、常见的 gitlab-ctl 命令)
    • [7.1 基本操作](#7.1 基本操作)
    • [7.2 配置管理](#7.2 配置管理)
    • [7.3 日志管理](#7.3 日志管理)
    • [7.4 备份与恢复](#7.4 备份与恢复)
    • [7.5 缓存管理](#7.5 缓存管理)

一、环境准备

1.1 docker 安装

  • 卸载旧版本的Docker(如果已安装)

    sudo apt-get remove docker docker-engine docker.io containerd runc

  • 更新Ubuntu的软件包列表:

    sudo apt update

  • 安装Docker所需的依赖包

    sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

  • 添加Docker的官方GPG密钥:

添加Docker的官方GPG密钥:

复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加Docker的APT存储库:

复制代码
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 再次更新软件包列表,并安装Docker引擎

    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io -y

  • 启动Docker服务并设置为开机自启:

    sudo systemctl start docker
    sudo systemctl enable docker

  • 验证Docker安装是否成功

    docker version

二、gitlab 搭建

2.1 环境准备

  • 镜像下载

    docker pull gitlab/gitlab-ee:16.11.4-ee.0

  • 创建持久化数据目录

创建目录用于持久化存储配置(config)、日志(logs)、数据(data)和证书(SSL):

复制代码
sudo mkdir -p /data/gitlab/config /data/gitlab/logs /data/gitlab/data /data/gitlab/ssl
  • 复制 SSL 证书

将SSL 证书文件(例如 gitlab.example.com.crt 和 gitlab.example.com.key)复制到 /data/gitlab/ssl 目录:

复制代码
sudo cp /path/to/your/gitlab.example.com.crt /data/gitlab/ssl/
sudo cp /path/to/your/gitlab.example.com.key /data/gitlab/ssl/
  • 确保文件权限正确:

    sudo chmod 600 /data/gitlab/ssl/gitlab.example.com.crt
    sudo chmod 600 /data/gitlab/ssl/gitlab.example.com.key

2.2 启动gitlab容器

使用 Docker 启动 GitLab 容器,配置 HTTPS 和持久化存储:

复制代码
  sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 80:80 --publish 443:443 --publish 2222:22 \
  --name gitlab \
  --restart always \
  --volume /data/gitlab/config:/etc/gitlab \
  --volume /data/gitlab/logs:/var/log/gitlab \
  --volume /data/gitlab/data:/var/opt/gitlab \
  --volume /data/gitlab/ssl:/etc/gitlab/ssl \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.example.com'; nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.example.com.crt'; nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.example.com.key';" \
  gitlab/gitlab-ee:16.11.4-ee.0

例如:

复制代码
docker run --detach \
  --hostname gitlab.book.com \
  --publish 80:80 --publish 443:443 --publish 2222:22 \
  --name gitlab \
  --restart always \
  --volume /data/gitlab/config:/etc/gitlab \
  --volume /data/gitlab/logs:/var/log/gitlab \
  --volume /data/gitlab/data:/var/opt/gitlab \
  --volume /data/gitlab/ssl:/etc/gitlab/ssl \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.cashbook.cc'; nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.book.com.crt'; nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.book.com.key';" \
  gitlab/gitlab-ee:16.11.4-ee.0

参数解释及作用

复制代码
1、docker run --detach:

docker run: 启动一个新的 Docker 容器。
--detach: 以分离模式运行容器,即在后台运行。

2、--hostname gitlab.example.com:

设置容器的主机名,这将是 GitLab 实例在网络上的标识。

3、--publish 80:80 --publish 443:443 --publish 2222:22:

--publish (或 -p): 映射主机端口到容器端口。
80:80: 将主机的 80 端口映射到容器的 80 端口,用于 HTTP 访问。
443:443: 将主机的 443 端口映射到容器的 443 端口,用于 HTTPS 访问。
2222:22: 将主机的 2222 端口映射到容器的 22 端口,用于 SSH 访问。

4、--name gitlab:

指定容器的名称为 gitlab。
--restart always:

设置容器的重启策略为总是重启,即使容器崩溃或 Docker 服务重启后,容器也会自动重启。

5、--volume /srv/gitlab/config:/etc/gitlab:

挂载主机的 /srv/gitlab/config 目录到容器的 /etc/gitlab 目录,用于存储 GitLab 配置文件。

6、--volume /srv/gitlab/logs:/var/log/gitlab:

挂载主机的 /srv/gitlab/logs 目录到容器的 /var/log/gitlab 目录,用于存储 GitLab 日志文件。

7、--volume /srv/gitlab/data:/var/opt/gitlab:

挂载主机的 /srv/gitlab/data 目录到容器的 /var/opt/gitlab 目录,用于存储 GitLab 数据。

8、--volume /srv/gitlab/ssl:/etc/gitlab/ssl:

挂载主机的 /srv/gitlab/ssl 目录到容器的 /etc/gitlab/ssl 目录,用于存储 SSL 证书文件。

9、--env GITLAB_OMNIBUS_CONFIG=...:

设置环境变量 GITLAB_OMNIBUS_CONFIG,用于配置 GitLab。

10、external_url 'https://gitlab.example.com': 配置 GitLab 的外部访问 URL 为 https://gitlab.example.com。

11、nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.example.com.crt': 配置 Nginx 使用的 SSL 证书路径。

12、nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.example.com.key': 配置 Nginx 使用的 SSL 证书密钥路径。
gitlab_rails['gitlab_shell_ssh_port'] = 2222: 配置 GitLab 使用的 SSH 端口为 2222。

13、gitlab/gitlab-ee:latest:

指定使用的 Docker 镜像为 gitlab/gitlab-ee 的最新版本。

2.3 验证 GitLab 启动

  • 使用以下命令检查 GitLab 容器的状态:

    docker ps

    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    878788361f54 gitlab/gitlab-ee:16.11.4-ee.0 "/assets/wrapper" 2 minutes ago Up 2 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

  • 在浏览器中访问 https://gitlab.example.com(替换为实际域名)。初次访问时会要求设置管理员密码。

2.4 备份和恢复

  • 备份 GitLab 数据

    sudo docker exec -t gitlab gitlab-backup create

备份文件存放在 /data/gitlab/data/backups 目录下。

  • 恢复 GitLab 数据

将备份文件复制到指定目录,并恢复:

复制代码
sudo docker cp /path/to/backup.tar gitlab:/var/opt/gitlab/backups/
sudo docker exec -t gitlab gitlab-backup restore BACKUP=<timestamp_of_backup>

2.5 升级 GitLab

拉取最新稳定版本的镜像并重启容器:

复制代码
sudo docker pull gitlab/gitlab-ee:latest
sudo docker stop gitlab
sudo docker rm gitlab
sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 80:80 --publish 443:443 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  --volume /srv/gitlab/ssl:/etc/gitlab/ssl \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.example.com'; nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.example.com.crt'; nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.example.com.key';" \
  gitlab/gitlab-ee:latest

三、已搭建的gitlab升级为HTTPS访问

3.1 准备 SSL 证书

准备 PEM 证书文件,分别需要crt和key文件

3.2 创建目录

复制代码
sudo mkdir -p /data/gitlab/ssl

3.3 复制证书

将 PEM 证书文件复制到该目录,并命名为 gitlab.example.com.crt 和 gitlab.example.com.key。例如:

复制代码
sudo cp /path/to/your/cloudflare_certificate.pem /data/gitlab/ssl/gitlab.example.com.crt
sudo cp /path/to/your/cloudflare_private_key.key /data/gitlab/ssl/gitlab.example.com.key

3.4 修改 GitLab 配置

编辑 GitLab 配置文件 gitlab.rb 以启用 HTTPS 并指定 SSL 证书和密钥路径。

复制代码
1、打开 gitlab.rb 文件进行编辑:
vim /data/gitlab/config/gitlab.rb


2、添加或修改以下配置:
external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"

3.5 重新配置并重启 GitLab

  • 重新配置 GitLab:

    sudo docker exec -it gitlab gitlab-ctl reconfigure

3.6 重启 GitLab 容器:

复制代码
sudo docker restart gitlab

注:通过上述步骤,我们可以将 GitLab 从 HTTP 升级到 HTTPS 访问。如果在配置过程中遇到问题,可以查看 GitLab 和 Nginx 的日志以获取更多调试信息。

四、生成 Cloudflare Origin CA 证书和私钥

如果在 Cloudflare 中生成的证书只有 PEM 格式的文件而没有私钥文件,可能您使用的是 Cloudflare 提供的"Origin CA"证书。这个证书是用来在 Cloudflare 和您的服务器之间建立安全连接的。在这种情况下,您需要使用 Cloudflare 的 Origin CA 来生成证书和私钥文件。

4.1 Cloudflare 如何获取SSL 证书和私钥

  1. 登录 Cloudflare 控制台。
  2. 选择您的域名。
  3. 导航到 SSL/TLS -> Origin Server。
  4. 点击 Create Certificate。
  5. 选择 Let Cloudflare generate a private key and a CSR。
  6. 点击 Next。
  7. 选择 PEM 格式并点击 Create.

生成后,您会得到两个文件:

  • Origin Certificate(证书文件,通常为 .pem 格式)。
  • Private Key(私钥文件,通常为 .key 格式)。

4.2 下载并保存证书和私钥文件

下载生成的证书和私钥文件,并将它们保存到您的服务器上。例如:

  • origin-cert.pem(证书文件)
  • origin-key.pem(私钥文件)

五、gitlab浏览器使用

5.1 修改初始密码

  • 默认用户名和密码
    默认用户名: root
    默认密码: 在 GitLab 的 Docker 容器首次启动时,默认密码会在日志中生成,或者使用在 gitlab.rb 文件中设置的密码。

5.1.1 获取默认密码

默认密码会存储在容器内的文件中,可以通过以下命令获取:

复制代码
sudo docker exec -it gitlab cat /etc/gitlab/initial_root_password

输出内容会包含类似如下的信息:

# WARNING: This value is valid only in the following conditions
# 1. You access the account via the web interface.
# 2. You have not already changed the password.
#
Password: <your_initial_password>

5.1.2 修改初始密码

  1. 通过Web页面设置
  • 登录后,点击右上角的头像,然后选择 Edit Profile
  • 在左侧菜单中选择 Password
  • 输入当前密码和新密码,然后点击 Save password
  1. 通过文件设置

如果我们在 gitlab.rb 文件中设置了自定义的初始密码,可以通过以下配置进行设置:

复制代码
gitlab_rails['initial_root_password'] = '密码'

然后重新配置 GitLab:

复制代码
sudo docker exec -it gitlab gitlab-ctl reconfigure

5.2 创建新用户

5.2.1 使用 Web 界面

  • 登录到 GitLab 管理界面(以管理员身份)。

  • 在左侧导航栏中,点击 Admin Area。

  • 在顶部导航栏中,选择 Users。

  • 点击 New user 按钮。

  • 填写用户的详细信息(如姓名、用户名、邮箱地址等)。

    Name: 用户的全名,如 "John Doe"。
    Username: 用户的唯一标识符,如 "johndoe"。
    Email: 用户的电子邮件地址。
    Password: 用户的密码(如果需要,可以暂时留空,用户可以通过邮件设置密码)。

  • 设置用户密码(如果需要)。

  • 点击 Create user 按钮。

注:

Name 是用户的全名,用于显示在界面上的人类可读的名字。

Username 是用户的唯一标识符,用于登录、URL 和命令行操作。

5.2.2 使用命令行(API)

我们还可以使用 GitLab API 创建用户。以下是一个示例命令:

复制代码
curl --request POST "https://gitlab.example.com/api/v4/users" \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "email=new_user@example.com&username=new_user&name=New User&password=password1234"

将 <your_access_token> 替换为管理员访问令牌。

5.3 创建新项目

5.3.1 通过 Web 界面创建项目

  1. 进入新项目创建页面:
  • 登录后,在页面的右上角,点击 + 按钮。
  • 从下拉菜单中选择 New project。
  1. 选择项目类型:
  • Create blank project:从头开始创建一个空项目。
  • Create from template:使用 GitLab 提供的模板创建项目。
  • Import project:从外部源(如 GitHub、Bitbucket)导入项目。
  1. 填写项目详细信息:
  • Project name:输入项目名称。这将自动生成项目的 URL 路径(可以手动修改)。
  • Project slug:这是项目的 URL 路径(如果未手动修改,将基于项目名称自动生成)。
  • Project description(可选):输入项目的描述信息。
  • Project visibility:选择项目的可见性级别:
    • Private:只有项目成员可以访问。
    • Internal:所有登录的用户可以访问。
  1. 设置其他选项(可选):
  • Initialize repository with a README:初始化项目时添加一个 README 文件。
  • Add .gitignore:选择一个适合项目的 .gitignore 模板。
  • Add a license:选择一个适合项目的许可证。
  1. 创建项目:

填写完所有信息后,点击 Create project 按钮。

5.3.2 通过命令行使用 API 创建项目

我们也可以使用 GitLab API 创建项目。以下是一个示例命令:

复制代码
curl --request POST "https://gitlab.example.com/api/v4/projects" \
--header "PRIVATE-TOKEN: <your_access_token>" \
--data "name=new_project&visibility=private"

将 <your_access_token> 替换为您的访问令牌,并根据实际情况修改 name 和 visibility 参数。

5.4 分配角色

在 GitLab 中,用户角色通常通过项目或组权限分配。常见的角色包括:Guest、Reporter、Developer、Maintainer 和 Owner。

5.4.1 分配项目角色

  • 登录到 GitLab 管理界面。
  • 选择一个项目。
  • 在左侧导航栏中,点击 Members。
  • 点击 Invite members 按钮。
  • 输入新用户的用户名或邮箱地址。
  • 选择用户的角色(如 Developer)。
  • 点击 Invite 按钮。

5.4.2 分配组角色

  • 登录到 GitLab 管理界面。
  • 选择一个组。
  • 在左侧导航栏中,点击 Members。
  • 点击 Invite members 按钮。
  • 输入新用户的用户名或邮箱地址。
  • 选择用户的角色(如 Developer)。
  • 点击 Invite 按钮。

5.5 允许用户上传和下载代码

只要用户被分配了适当的角色(如 Developer 或以上),他们就可以在项目中进行代码上传和下载。

5.5.1 上传代码

用户可以使用 Git 命令行工具将代码推送到项目中:

复制代码
git clone https://gitlab.example.com/group/project.git
cd project
# 做出一些更改
git add .
git commit -m "Add new feature"
git push origin main

5.5.2 下载代码

用户可以通过 Git 克隆项目:

复制代码
git clone https://gitlab.example.com/group/project.git

六、常见错误处理

6.1 端口被占用

错误信息:

复制代码
docker: Error response from daemon: driver failed programming external connectivity on endpoint gitlab

解决方法

复制代码
确保端口未被其他服务占用。例如,22 端口可能已经被 SSH 服务占用。

6.2 浏览器访问时显示 Error code 522

访问报错:Connection timed out Error code 522

错误代码 522 通常表示 Cloudflare 无法连接到您的服务器。以下是可能的解决方案:

6.2.1 检查服务器防火墙配置(云厂商安全组)

确保防火墙允许 HTTP(80)、HTTPS(443)和新的 SSH(2222)端口的访问。

6.2.2 确认服务器端口开放

确保服务器在正确的端口上监听。您可以使用 netstat 或 ss 工具进行检查:

复制代码
sudo netstat -tuln | grep ':80'
sudo netstat -tuln | grep ':443'
sudo netstat -tuln | grep ':2222'

确保这些命令返回监听状态。

6.2.3 确认 Docker 容器端口映射

检查 Docker 容器的端口映射是否正确:

复制代码
docker ps

6.2.4 检查服务器上的 GitLab 配置

确保 GitLab 容器内的 NGINX 正常运行并监听正确的端口。进入容器内部检查 NGINX 状态:

复制代码
sudo docker exec -it gitlab gitlab-ctl status

检查 NGINX 日志:

复制代码
sudo docker exec -it gitlab gitlab-ctl tail nginx

确保 NGINX 正常启动且没有错误。

6.3 浏览器访问时显示 Error code 521

报错信息:Cloudflare 报错Web server is down Error code 521

错误代码 521 表示 Cloudflare 无法连接到您的服务器。这通常是因为服务器没有响应,或者阻止了来自 Cloudflare 的请求。以下是一些可能的解决方案:

6.3.1 确认 Web 服务器正在运行

确保 GitLab 容器内的 NGINX 服务正在运行。

进入 GitLab 容器内部:

复制代码
sudo docker exec -it gitlab bash

然后检查 NGINX 服务状态:

复制代码
gitlab-ctl status nginx

如果 NGINX 没有运行,可以尝试重新启动:

复制代码
gitlab-ctl restart nginx

6.3.2 检查 Web 服务器日志

查看 NGINX 的日志文件,查找任何错误信息:

复制代码
gitlab-ctl tail nginx

6.3.3 检查 Docker 容器端口映射

确保 Docker 容器正确映射了 HTTP 和 HTTPS 端口。

运行以下命令来检查容器的端口映射:

复制代码
docker ps

6.3.4 检查服务器防火墙配置(云厂商安全组)

确保防火墙允许 HTTP(80)、HTTPS(443)和新的 SSH(2222)端口的访问。

6.3.5 确认 Cloudflare 的 SSL/TLS 配置

确保 Cloudflare SSL/TLS 配置正确。推荐使用"Full"或"Full (strict)"模式:

  1. 登录 Cloudflare 控制台。
  2. 选择您的域名。
  3. 导航到 SSL/TLS 选项卡。
  4. 确保 SSL/TLS 模式设置为 Full 或 Full (strict)。

注意:如果更改 Cloudflare 的 SSL/TLS 模式可能会影响该域名其他网站的访问,我们可以尝试以下几个步骤来解决 GitLab 的连接问题,而不影响其他网站的正常访问:

6.3.6 为 GitLab 设置单独的 Page Rule

确认 Cloudflare 的 SSL/TLS 配置,推荐使用"Full"或"Full (strict)"模式。为了不影响其他网站,可以为 GitLab 设置单独的 Page Rule。

  1. 登录 Cloudflare 控制台。

  2. 选择您的域名。

  3. 导航到 Page Rules 选项卡。

  4. 创建一个新的 Page Rule,规则如下:

    URL: gitlab.example.com/
    Settings: SSL -> Full (strict)

七、常见的 gitlab-ctl 命令

gitlab-ctl 是 GitLab Omnibus 版本中的一个命令行工具,用于管理和配置 GitLab 服务。即使使用 Docker 部署 GitLab,您仍然可以通过在 Docker 容器中执行 gitlab-ctl 命令来管理 GitLab 实例。

7.1 基本操作

  • 启动 GitLab:

    gitlab-ctl start

  • 停止 GitLab 服务:

    gitlab-ctl stop

  • 重启 GitLab 服务:

    gitlab-ctl restart

  • 检查所有 GitLab 组件的运行状态:

    gitlab-ctl status

7.2 配置管理

  • 重新配置 GitLab:

当我们修改了配置文件 /etc/gitlab/gitlab.rb 后,需要重新加载配置:

复制代码
gitlab-ctl reconfigure
  • 测试配置:

    gitlab-ctl reconfigure --dry-run

7.3 日志管理

  • 查看所有服务日志:

    gitlab-ctl tail

  • 查看指定特定服务的日志,例如查看 Nginx 的日志

    gitlab-ctl tail nginx

7.4 备份与恢复

  • 创建备份:

在进行升级前,您可以创建备份:

复制代码
gitlab-rake gitlab:backup:create
  • 从备份恢复:

    gitlab-rake gitlab:backup:restore

7.5 缓存管理

  • 清除 Redis 缓存:

    gitlab-rake cache:clear

相关推荐
深念Y1 小时前
Windows → WSL2 全面迁移:工具链、Docker、OpenCode
linux·运维·windows·docker·容器·环境·wsl
猫吃了源码17 小时前
k9s简介和安装
linux·docker·kubernetes
云原生指北18 小时前
Docker Sandboxes 上手:从安装到第一次跑 Agent
运维·docker·容器
ziyun66688819 小时前
Docker 容器化 Web 服务架构搭建与自动化运维项目
运维·docker·架构
Jeanyia20 小时前
GitLab 配套 Git 常用命令
git·gitlab
骇客野人21 小时前
Docker Compose 部署多个独立 Jar 服务完整实操步骤
docker·容器·jar
云川之下1 天前
【k8s】Docker inspect 命令
docker·容器·kubernetes
极小狐1 天前
极狐GitLab 补丁版本:19.2.1、19.1.3、19.0.5
网络·安全·gitlab·极狐gitlab·安全更新·补丁版本
倔强的石头1061 天前
飞牛OS部署Mtab:Docker搭建自托管书签导航并实现远程访问
运维·docker·容器
游戏开发爱好者81 天前
iOS 推送怎么配置,APNs 推送证书、设备库与群发
android·ios·小程序·https·uni-app·iphone·webview