Docker部署gitlab_ce及配置详解

一、Docker部署gitlab_ce(单机版)

1.1 部署脚本

按照下述命令启动 gitlab-ce 容器

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 创建目录
mkdir -p /data/gitlab/{config,logs,data}

# 启动命令
docker run -d -p 10443:443 -p 8090:80 -p 10022:22 --name gitlab --restart always -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest


# 备份
rm -rf /data/gitlab/data/backups/*.tar
docker exec -it gitlab gitlab-backup create


# 检查启动的docker
docker ps

1.2 登录gitlab 与配置

gitlab 容器启动后,等待几分钟,待 gitlab-ce 容器完成初始化完成:

  • 在浏览器中访问 http://127.0.0.1:8090 ,进入 gitlab 登录页面;
  • 使用 root 用户(初始密码存放在 /data/gitlab/config/initial_root_password 文件中)登录 gitlab 的 Web 页面(登录页面后建议修改root密码);

登录 Web 页面后,设置用户界面语言为 简体中文: 点击页面左上角圆形用户图标 -> Preferences 打开设置页面,下拉页面找到 Localization -> Language 中选择 简体中文 选项, 继续下拉到页面底端, 点击 Save changes 按钮保存修改;

Docker 启动 gitlab 后,默认使用 docker 容器ID 当做 gitlab repo 仓库的 host-name, 通常需要配置 gitlab repo 仓库host-name, 配置方法如下:

1
2
# 编辑修改 /data/gitlab/config/gitlab.rp 配置文件, 在其中 添加/修改 如下配置项
external_url 'http://192.168.1.2'      # 此处 ip 换为部署 gitlab 的 ip 或 host-name

配置 ssh 命令行访问 gitlab (配置支持 git 等工具 使用 ssh 连接gitlab):

1
2
3
4
5
6
# 编辑修改 /data/gitlab/config/gitlab.rp 配置文件, 在其中 添加/修改 如下配置项
gitlab_rails['gitlab_ssh_host'] = '192.168.1.2'      # 此处 ip 换为部署 gitlab 的 ip 或 host-name
gitlab_rails['gitlab_ssh_port'] = '10022'            # 此处 Port 换为部署 gitlab 的 Port

# 修改 时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'

修改配置后需要 进入容器命令行 执行 gitlab 的 reconfigure 命令,详细操作如下:

1
2
3
4
5
6
7
8
# 进入docker 容器 命令行
docker exec -it gitlab Bash

# 执行 reconfigure
gitlab-ctl reconfigure

# 重启 gitlab 服务
gitlab-ctl restart

至此, gitlab 的安装部署已基本完成, 我们可以创建 group、user、repo 等,并开始使用 gitlab 管理代码。

Tips: 我们可以根据需要, 修改 gitlab 配置, 对于 gitlab 配置 修改,需要注意以下两点

  1. 在web 页面修改的配置, 在页面点击 保存 按钮保存修改后,配置实时生效;
  2. 手动修改 /data/gitlab/config/ 目录下的配置(如 gitlab.rb ) 后,需登录 gitlab 容器命令行,执行 gitlab-ctl reconfigure 命令后方可生效;

二、Windows环境配置Git、TortouseGit连接Github

2.1 Git、TortouseGit安装及配置

  1. 获取 Git安装程序(https://git-scm.com/downloads) 并安装Git,完整安装步骤此处略过;

  2. 获取 TortouseGit安装程序(https://tortoisegit.org/download/) 并安装TortouseGit,完整安装步骤此处略过, 也可在下载TortouseGit安装程序(https://tortoisegit.org/download/)下载页面查找中文包下载并安装中午支持;

  3. 在 桌面 或 任意目录 下点击鼠标右键,在菜单选项列表中选择 TortouseGit -> Settings 打开TortouseGit配置窗口, 在 TortouseGit配置窗口中点击左侧的 General 选项页面,在该页面右侧 中间的 Git For Windows 中 配置 git.ex Path (git.exe程序的目录, Git安装目录下的 bin 目录, 如:C:Program Files\Git\bin

2.2 配置 Git、TortouseGit 以 ssh 秘钥访问 gitlab

  1. 在 gitlab 系统注册新用户,注册完成后联系管理员激活账号。

  2. 打开 Git Bash 命令行窗口, 配置 Gitlab 账号及 邮箱等:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 配置
git config global user.name "Your Register Name"
git config global user.email "Your Register Email"


# 查看
git config -l
git config --list
git config user.name
git config user.email
  1. 创建 ssh 密钥对: 在 Git Bash 命令行窗口中输入如下命令、连续按下回车键
1
2
3
ssh-keygen.exe -t rsa -c 'Your Register Email'    # 请把 Your Register Email 替换为你的注册邮箱
# 根据需要,加密算法 rsa 可换为 dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk 等加密算法
# 最终生成的密钥对存放在 C:\Users\username\.ssh 目录下
  1. 登录 Gitlab 配置 ssh 公钥: 用户登录 Gitlab 后打开 http://your-gitlab-host/-/user_settings/ssh_keys 页面,点击 添加新页面 按钮,将第3步中创建的密钥对的公钥( C:\Users\username.ssh\id_rsa.pub )文件中的 内容(公钥)copy 到 页面 的 密钥 输入框中, 按照页面指引完成添加秘钥。

  2. 配置 ssh config

1
2
3
4
5
6
# 在 C:\Users\username\.ssh\config 文件中添加如下配置内容, 如 config 文件不存在则先创建该 config 文件
Host  your-gitlab-host-or-ip
   HostName your-gitlab-host-or-ip
   User gitlab-user_name
   Port 10022                                      # 默认不配置是 22, 在此处填写实际使用端口
   IdentityFile C:\Users\username\.ssh\id_rsa      # 私钥文件
  1. 打开 Git Bash 命令窗口, Clone 已有 Gitlab repo 到本地进行测试
1
git clone git@{your-gitlab-host-or-ip}:{path/to/your-repo.git}

执行 Clone 命令时,如果遇到 错误提示:Could not a connect to your authentication, 说明 ssh 代码未启用或未正确配置, 执行以下命令即可解决此错误

1
2
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa