本文介绍如何在 CentOS 7 系统上以容器方式部署 GitLab,并演示如何使用 ZeroNews 通过互联网访问 GitLab 私有仓库,进行代码版本发布与更新。

先决条件

拥有一个有效的 ZeroNews 账户

第 1 步: 部署 GitLab 容器

在开始部署 GitLab 容器之前,您需要创建本地目录来存储 GitLab 数据、配置和日志:
#创建本地目录
mkdir -p /opt/docker/gitlab/data
mkdir -p /opt/docker/gitlab/config
mkdir -p /opt/docker/gitlab/log

#gitlab 端口号映射:
80:80
2222:22

#运行 gitlab 容器
 docker run -d --restart=always --name=gitlab -p 80:80 -p 2222:22 -v /opt/docker/gitlab/data:/var/opt/gitlab -v /opt/docker/gitlab/config:/etc/gitlab -v /opt/docker/gitlab:/var/log/gitlab -v /etc/localtime:/etc/localtime gitlab/gitlab-ce:latest

#查看 root 密码
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

查看创建好 GitLab 容器,确保 GitLab 容器已成功运行,然后继续下一步。 318439882-9af9062d-3854-4ff4-a51d-c80803b74f3b

第 2 步:部署 ZeroNews 内网穿透

我们通过 Docker 容器方式部署 ZeroNews 内网穿透

选择快速开始方式

登录 https://user.zeronews.cc ,在「快速开始」页面,选择 Docker 安装方式,选择 ZeroNews 公共仓库(国内),按步骤操作。 img

按步骤运行 ZeroNews 服务

通过以下命令在 ZeroNews 官方仓库下载 ZeroNews 容器镜像
sudo docker pull docker.zeronews.cc/zeronews/zeronews:latest
创建数据目录并启动容器
选择 Docker Run 方式运行,执行如下命令
sudo mkdir -p /opt/zeronews
sudo docker run -d --name zeronews --net host \
  -v /opt/zeronews:/etc/zeronews \
  -e TOKEN=<your token> \
  docker.zeronews.cc/zeronews/zeronews:latest
请复制快速开始页面的 AuthToken 替换 <your token> 占位符。

查看运行中的客户端状态

ZeroNews 容器启动成功后,在 ZeroNews 控制台「关联客户端」页面查看已上线的 ZeroNews 容器设备。

第 3 步:为 GitLab 添加域名及隧道

为 GitLab 添加域名

在 ZeroNews 管理平台的「自定义域名」管理界面中,添加域名(以 gitlab 为例):
  1. 在「域名类型」中选择「默认域名」,并在「子域名前缀」中输入 gitlab,然后点击「域名可用性检测」
  2. 若下方「接入域名」显示为「可注册」,则表示该域名当前可添加使用,点击单选框选择该域名
  3. 点击「提交」,完成域名添加

为 GitLab 添加公网隧道

在 ZeroNews 管理平台的「隧道管理」页面下,添加隧道:
  1. 选择隧道模式
    • 在「隧道模式」下拉框中,保持选择 「标准隧道」
  2. 选择隧道特性
    • 在「隧道特性」下拉框中,选择 「Raw」(默认透传模式)
  3. 配置协议与带宽
    • 隧道协议:选择 「HTTPS」
    • 带宽(Mbps):在输入框中填写所需的带宽数值(例如 1)
  4. 设置公网域名
    • 在「公网域名」选项中,点击选择 「自定义域名」
    • 在下方的「选择自定义域名」下拉框中,选择刚才添加的域名,例如 gitlab.hn.takin.cc
  5. 配置内网映射信息
    • 绑定设备:点击下拉框选择需要绑定的在线设备
    • 内网 IP:在输入框中填写内网 IP 地址,例如 127.0.0.1
    • 内网端口:在输入框中填写 GitLab 容器映射的端口号 80
  6. 完成添加
    • 点击右下角的 「确认」 按钮即可保存
创建成功之后,您就可以在隧道列表页面看到可访问的隧道。

第 4 步:配置 GitLab 的 git clone HTTPS 地址

点击 GitLab 隧道的访问地址后面的打开小图标,自动在浏览器中打开 GitLab 管理平台,输入用户名和密码登录。 Snipaste_2024-05-11_15-57-30 318444481-58ff20f0-1654-4fc3-9610-2ddee01a4988 进入 “Admin Area” > “Settings - General”。 318442677-643f97b3-b4a0-4152-8c16-64320c60295b 在 “Visibility and Access Controls” 部分,将 GitLab 的公网域名地址填入 “Custom Git clone URL for HTTP(S)”。 318443073-714dae18-f5b5-4bc2-b27f-ca65c697bde6

第 5 步: GitLab 测试 Projects

创建 GitLab 测试 Projects 创建 tc , 步骤如下: 318445881-6566142d-7a21-49cf-896f-9eeef15389ce 318445770-b6b3fea3-12f0-4554-9fce-46acaa88447e 318445539-4661e878-44c8-45d6-b78f-275273ca3b28 查看 创建好的 tc project 318447486-f57a09c4-764b-45dd-b554-4ba3d7ea8482 进入到 tc project,查看 Git Clone 地址 318447717-b24b7b17-1309-43dd-a03b-5840a19e8826

第 6 步:从客户端 Git Clone 和版本控制

  1. 从客户端进行 Git Clone:
在能够访问互联网的 Linux 系统上,使用以下命令进行 Git Clone:
git clone https://gitlab.ny.takin.cc/root/tc.git
318454466-a77c1496-10ad-4744-9bc2-e734195fd617
  1. 使用 SourceTree 进行版本控制**:
打开 SourceTree,点击 “新增 - Clone”,根据提示输入 GitLab 的账户和密码。 318462359-a5f676ee-c1a3-4c91-a071-97b4d26ab36b 提示:文档截图及示例中的域名、隧道地址可能与您当前实际使用的不一致,请以 ZeroNews 控制台显示的实际地址为准。