ARM架构CentOS 8下通过Docker搭建GitLab

本文主要叙述如何在ARM架构的CentOS 8操作系统下搭建GitLab


首先安装Docker

先下载docker-ce源,不能够直接通过dnf安装docker,通过dnf install docker默认安装的是podman软件,centos8下默认使用podman替换docker,不能够正常使用

1
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

卸载podman

1
dnf -y erase podman buildah

再安装docker-ce,--allowerasing表示允许进行包替换

1
dnf install docker-ce --allowerasing

配置docker开机自启,并且启动docker

1
2
systemctl enable docker
systemctl start docker

更换国内源,加快镜像拉取速度

1
vim /etc/docker/daemon.json

填入以下内容

1
2
3
4
5
6
7
8
9
10
11
{
"registry-mirrors":[
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"http://registry.docker-cn.com"
] ,
"insecure-registries":[
"docker.mirrors.ustc.edu.cn",
"registry.docker-cn.com"
]
}

通过Docker拉取GitLab镜像

由于正常拉取的gitlab镜像是x86架构的,因此需要特殊拉取arm架构下的镜像

1
docker pull yrzr/gitlab-ce-arm64v8

启动Docker镜像

首先在本机创建存放容器数据的文件夹:

1
2
3
4
cd ~
mkdir -p gitlabdata/config
mkdir -p gitlabdata/logs
mkdir -p gitlabdata/data

接着启动一个GitLab的容器

1
2
3
4
5
6
7
8
docker run --detach \
--publish 443:443 --publish 80:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume ~/gitlabdata/config:/etc/gitlab \
--volume ~/gitlabdata/logs:/var/log/gitlab \
--volume ~/gitlabdata/data:/var/opt/gitlab \
yrzr/gitlab-ce-arm64v8
  • detach表示后台运行
  • publish表示端口映射,将容器的443、80、22端口映射到本机。443、80分别负责HTTPS与HTTP服务。22端口负责SSH服务,但是由于本机服务器需要SSH服务进行远程登陆,因此将本机的2222端口与容器进行映射
  • restart表示容器退出后总是重启
  • volume表示将容器内部的数据映射到本机,防止容器重启后之前的数据丢失

配置管理员密码

首先登入容器中,进入数据库管理页中

1
2
3
docker exec -it gitlab /bin/bash
cd /opt/gitlab/bin
gitlab-rails console -e production

修改root账号密码

1
2
3
4
5
u=User.where(id:1).first
u.password='xxx'
u.password_confirmation='xxx'
u.save!
exit

此后便可通过root账号登录,并且修改项目的各项配置


修改GitLab配置文件

打开相应的配置文件

1
2
docker exec -it gitlab /bin/bash
vi /etc/gitlab/gitlab.rb

在该文件中添加:

1
2
3
external_url 'http://10.80.42.208'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
gitlab_rails['time_zone'] = 'Asia/Shanghai'
  • 负责修改正确的clone地址
  • 配置正确的ssh端口
  • 修改时区
    重新加载配置文件并且重启服务
1
2
gitlab-ctl reconfigure
gitlab-ctl restart

汉化

gitlab 12版本以上可以在设置,偏好中自行选择中文