安装 gitlab 镜像

首先需要从 docker 镜像仓库当中获取 gitlab-ce 的最新镜像文件

docker pull gitlab/gitlab-ce:latest

创建 gitlab 数据目录,在运行的时候需要把 docker 容器当中的目录挂载到虚拟机当中

mkdir -p /www/gitlab/config
mkdir -p /www/gitlab/logs
mkdir -p /www/gitlab/data

运行容器

docker run -d -p 7081:80 -p 7082:443 -p 7083:22 -v /www/gitlab/config:/etc/gitlab -v /www/gitlab/logs:/var/log/gitlab -v /www/gitlab/data:/var/opt/gitlab --name=gitlab --privileged=true --restart always gitlab/gitlab-ce:latest
-p 容器内容的端口映射到宿主机对应的端口
-d 后台运行
--name 容器名字
--privileged=true 容器拥有root权限
--restart always 容器自启动
-v 把宿主机的目录挂载到镜像里

配置gitlab

vim /www/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.199.231'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 7083# 此端口是run时22端口映射的7083端口
注意,要是external_url的端口不是80端口,那么在运行容器的时候,宿主机在原来映射容器的80端口也需要修改为对应端口

至此,使用 docker 搭建 gitlab 已完成

备份文件恢复

如果我们有已经备份好的 gitlab 压缩包需要恢复,可执行下面操作:
先将 需要恢复的压缩包 1586587163_2020_04_11_11.11.3_gitlab_backup.tar 放入 /www/gitlab/data 文件夹,以便挂载后在容器中可以访问到该备份文件

docker exec -it gitlab /bin/bash  # 进入要恢复备份的gitlab所在容器
gitlab-ctl stop unicorn  # 停止相关数据连接服务
gitlab-ctl stop sidekiq
mv /var/opt/gitlab/1586587163_2020_04_11_11.11.3_gitlab_backup.tar /var/opt/gitlab/backups/1586587163_2020_04_11_11.11.3_gitlab_backup.tar  # 将备份文件移入gitlab备份文件夹
chmod 777 /var/opt/gitlab/backups/1586587163_2020_04_11_11.11.3_gitlab_backup.tar  # 修改权限
gitlab-rake gitlab:backup:restore BACKUP=1586587163_2020_04_11_11.11.3  # 开始恢复备份

恢复完成后重启 gitlab 容器即可

恢复备份一定要保证新 gitlab 服务器版本与旧 gitlab 服务器版本完全一致
×