gitlab迁移到docker中

  • 安装docker
  • 安装gitlab
  • 拉取镜像
  • 启动
  • 改密码
  • 开放端口
  • 修改克隆地址
  • 迁移项目



本次初次使用龙蜥系统,首先,在虚拟机中安装dockers,报错,

安装docker

1. 安装所需的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
2. 设置阿里云仓库(国内仓库稳定)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装docker-ce(社区版)
yum install docker-ce docker-ce-cli containerd.io
1. 安装所需的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
2. 设置阿里云仓库(国内仓库稳定)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装docker-ce(社区版)
yum install docker-ce docker-ce-cli containerd.io

由于软件包的问题。。。

gitlab 迁移仓库 大文件限制 gitlab整体迁移_docker


gitlab 迁移仓库 大文件限制 gitlab整体迁移_gitlab_02


so,听劝的我加了参数在运行

gitlab 迁移仓库 大文件限制 gitlab整体迁移_git_03


docker安装成功!版本有点高,我在云服务器上才 20.10.16,这里都26.0.0了。

安装gitlab

拉取镜像

docker pull gitlab/gitlab-ce:latest

gitlab 迁移仓库 大文件限制 gitlab整体迁移_gitlab_04


有点大。。

启动

docker run 
-d                #后台运行,全称:detach
-p 8443:443      #将容器内部端口向外映射
-p 81:80       #将容器内80端口映射至宿主机81端口,这是访问gitlab的端口
-p 8022:22       #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--restart always #容器自启动
--name gitlab    #设置容器名称为gitlab
-v /usr/local/gitlab/etc:/etc/gitlab    #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /usr/local/gitlab/log:/var/log/gitlab    #与上面一样
-v /usr/local/gitlab/data:/var/opt/gitlab   #与上面一样
--privileged=true         #让容器获取宿主机root权限
gitlab/gitlab-ce    #镜像的名称,这里也可以写镜像ID
docker run 
-d                #后台运行,全称:detach
-p 8443:443      #将容器内部端口向外映射
-p 81:80       #将容器内80端口映射至宿主机81端口,这是访问gitlab的端口
-p 8022:22       #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--restart always #容器自启动
--name gitlab    #设置容器名称为gitlab
-v /usr/local/gitlab/etc:/etc/gitlab    #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /usr/local/gitlab/log:/var/log/gitlab    #与上面一样
-v /usr/local/gitlab/data:/var/opt/gitlab   #与上面一样
--privileged=true         #让容器获取宿主机root权限
gitlab/gitlab-ce    #镜像的名称,这里也可以写镜像ID

gitlab 迁移仓库 大文件限制 gitlab整体迁移_容器_05


gitlab 迁移仓库 大文件限制 gitlab整体迁移_git_06


已经启动了。

改密码

命令进入容器
docker exec -it gitlab /bin/bash
然后在容器中输入:
gitlab-rails console -e production
在打开的Rails控制台中,输入以下命令:

user = User.where(id: 1).first
user.password = 'newpassword'
user.password_confirmation = 'newpassword'
user.save!

密码不要太简单,不然没法通过

或者直接找到初始密码,一般在容器的/etc/gitlab目录下initial_root_password文件中,你找到宿主机上对应挂载目录就好,然后登陆进去自个改一下。

gitlab 迁移仓库 大文件限制 gitlab整体迁移_gitlab 迁移仓库 大文件限制_07

开放端口

我这台虚拟机安装的龙蜥系统,一个端口都没有开放

gitlab 迁移仓库 大文件限制 gitlab整体迁移_容器_08

好了,局域网也可以访问了:

gitlab 迁移仓库 大文件限制 gitlab整体迁移_gitlab 迁移仓库 大文件限制_09


界面有点不适应,我之前安装的跟这个差异有点大。

然后我把这个虚拟机做了一下穿透,将gitlab映射到了公网;

接下来正常操作create group,create project就行了,这时你会发现,克隆地址是不正常的,ip和port被容器编号代替了。

修改克隆地址

这时候不要慌,打开容器的/etc/gitlab在宿主机的挂载目录,配置文件gitlab.rb,打开它,我看了很多博文都说要改四个配置:

external_url ‘http://xxxx’、

gitlab_rails[‘gitlab_ssh_host’] =‘’、

gitlab_rails[‘gitlab_shell_ssh_port’] = 22、

nginx[‘listen_port’] = 80

我都一一碰过了,external_url配过后页面就没打开过,所以只配置了ssh的两个端口,分别配置了这台虚拟机在公网上的映射端口,你要是只用在局域网,可以直接配你这台主机的端口,到这一步,先重启一下容器,登陆进去会发现项目克隆地址,ssh的已经正确了,但是http的还是容器编号,

gitlab 迁移仓库 大文件限制 gitlab整体迁移_gitlab 迁移仓库 大文件限制_10


点击管理员进入管理中心,

gitlab 迁移仓库 大文件限制 gitlab整体迁移_docker_11


选General的第一个Visibility and access controls,expan点开他,

gitlab 迁移仓库 大文件限制 gitlab整体迁移_容器_12


这里填上你的http地址就行了,保存修改,接下来到项目那里可以看到,克隆地址都正确了:

gitlab 迁移仓库 大文件限制 gitlab整体迁移_git_13

迁移项目

接下来就迁移项目吧,我直接通过克隆原来的gitlab项目一个个拉过来,就没再折腾了。