# 手动部署

RHEL 8.9 on amd64

注意:官方没有 arm64 架构的镜像,如果不使用第三方的 arm64 镜像,则需要使用 RPM/DEB 包进行安装。

https://docs.gitlab.com/ee/install

# 安装docker

# docker
mkdir -p /data/docker

yum install -y libcgroup container-selinux

# rpm -ivh container-selinux-2.138.0-1.uel20.noarch.rpm
rpm -ivh containerd.io-1.6.28-3.2.el8.x86_64.rpm
rpm -ivh docker-ce-cli-25.0.4-1.el8.x86_64.rpm
rpm -ivh docker-ce-25.0.4-1.el8.x86_64.rpm
rpm -ivh docker-compose-plugin-2.24.7-1.el8.x86_64.rpm
rpm -ivh docker-buildx-plugin-0.13.0-1.el8.x86_64.rpm

cat > /etc/docker/daemon.json <<EOF
{
    "insecure-registries": [
        "r.oso.plus"
    ],
    "exec-opts": [
        "native.cgroupdriver=systemd"
    ],
    "registry-mirrors": [
        "https://r.oso.plus",
        "https://registry.docker-cn.com",
        "https://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn"
    ],
    "data-root": "/data/docker",
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m"
    }
}
EOF

echo 'export PATH=/usr/libexec/docker/cli-plugins:$PATH' >>/etc/profile
source /etc/profile

systemctl enable containerd docker
systemctl start containerd docker
systemctl status containerd docker

# gitlab-ce

https://docs.gitlab.com/ee/update/package/index.html#upgrade-using-the-official-repositories 安装

# gitlab-ce
# https://packages.gitlab.com/gitlab/gitlab-ce
# https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
# https://hub.docker.com/r/gitlab/gitlab-ce
# gitlab-runne
# https://docs.gitlab.com/runner/install/bleeding-edge.html#download-any-other-tagged-release
# https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/main/binaries/gitlab-runner-linux-amd64
# https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/main/binaries/gitlab-runner-linux-arm64


dnf install -y libatomic openssh-server perl policycoreutils-python-utils

# 如果wget只使用ipv4连接 添加参数 --inet4-only
wget --no-check-certificate --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-16.9.2-ce.0.el8.x86_64.rpm/download.rpm
# wget --no-check-certificate --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-16.9.2-ce.0.el8.aarch64.rpm/download.rpm

# https://frontend-project-dev.oss-cn-beijing.aliyuncs.com/software/gitlab-ce-arm64v8-15.6.7-ce.0.gz

EXTERNAL_URL="http://gitlab.oso.plus" rpm -ivh gitlab-ce-16.9.2-ce.0.el8.x86_64.rpm
# EXTERNAL_URL="http://192.168.100.149" rpm -ivh gitlab-ce-16.9.2-ce.0.el8.x86_64.rpm

gitlab-ctl reconfigure

# 修改默认数据存储目录 注意缩进
mkdir -p /data/gitlab/git-data

# 在 /etc/gitlab/gitlab.rb 文件中搜索git_data_dirs,并做如下修改
git_data_dirs({
  "default" => {
    "path" => "/data/gitlab/git-data"
    }
})

# 初始密码保存在 /etc/gitlab/initial_root_password 文件中 24小时内有效
cat /etc/gitlab/initial_root_password

# 迁移旧的数据到新的位置
cp -ar /var/opt/gitlab/git-data/repositories /data/gitlab/git-data/

# 重新加载配置
gitlab-ctl reconfigure

# 启动gitlab
gitlab-ctl start

# 浏览器访问 帐号 root 密码 K8BWgX7sZrvXZ5dwvGqxTNhpiyS/YQAT11Khf3eHHz4=
http://192.168.100.145

# 首次登录时可能会提示
Check your sign-up restrictions
Your GitLab instance allows anyone to register for an account, which is a security risk on public-facing GitLab instances. You should deactivate new sign ups if public users aren't expected to register for an account.
停用新用户注册选 deactivate
开放新用户注册选 acknowledge

# 开机自启和服务管理
systemctl enable gitlab-runsvdir
systemctl restart gitlab-runsvdir

# 设置中文界面

1739990357732.png

1739990368316.png

# gitlab初始用户名和密码

当第一次安装gitlab,需要创建一个管理员账户,其用户名和密码都是默认的。如果修改默认用户名和密码,需要进行以下步骤:

1、修改以下文件中的用户名和密码:
vim /etc/gitlab/gitlab.rb
修改admin用户的密码:
gitlab_rails['initial_root_password'] = 'password'

2、重启gitlab:
gitlab-ctl reconfigure
gitlab-ctl restart

3、执行以下命令重置管理员账户的密码:
gitlab-rails console -e production
user = User.find_by(username: 'root')
user.password = 'password'
user.password_confirmation = 'password'
user.save!

4、如果没生效的话,就再重启一起吧

# 官方docker镜像下载

注意:官方到目前为止,只有amd64架构的容器镜像

docker pull gitlab/gitlab-ce:13.12.15-ce.0
docker pull gitlab/gitlab-ce:14.10.5-ce.0
docker pull gitlab/gitlab-ce:15.11.13-ce.0
docker pull gitlab/gitlab-ce:16.11.5-ce.0
docker pull gitlab/gitlab-ce:17.1.1-ce.0

经测试可用的arm64架构的非官方容器镜像 但是只提供arm64的镜像

https://hub.docker.com/r/ravermeister/gitlab
docker pull --platform linux/arm64 ravermeister/gitlab:17.0.2
docker pull --platform linux/arm64 ravermeister/gitlab:16.11.2
docker pull --platform linux/arm64 ravermeister/gitlab:16.10.3
docker pull --platform linux/arm64 ravermeister/gitlab:16.9.2
docker pull --platform linux/arm64 ravermeister/gitlab:16.8.2
docker pull --platform linux/arm64 ravermeister/gitlab:16.7.3
docker pull --platform linux/arm64 ravermeister/gitlab:16.6.2
docker pull --platform linux/arm64 ravermeister/gitlab:15.11.5
docker pull --platform linux/arm64 ravermeister/gitlab:14.10.3
docker pull --platform linux/arm64 ravermeister/gitlab:13.12.4

# 使用docker运行gitlab

# 如果有独立的数据盘,提前将数据盘挂载到/data目录,并配置/etc/fstab 开机启动挂载
# 1、创建gitlab数据目录
mkdir -pv /data/gitlab

# 2、创建docker-compose.yaml文件
# 根据实际情况修改镜像、映射端口、external_url 'http://10.101.68.5'
cat << EOF > /data/gitlab/docker-compose.yaml
services:
  gitlab:
    image: harbor.seeyon.com/v8base/gitlab-ee:17.6.1-ee.0
    #network_mode: host
    container_name: gitlab
    restart: always
    hostname: 'gitlab'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://10.101.68.5'
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - './config:/etc/gitlab:Z'
      - './logs:/var/log/gitlab:Z'
      - './data:/var/opt/gitlab:Z'
EOF

# 3、启动gitlab
cd /data/gitlab
docker-compose up -d

# 4、等待gitlab启动完成,可以通过docker logs -f xxx 查看日志。获取root的初始密码,然后就可以登录gitlab进行使用了。
cat /data/gitlab/config/initial_root_password

编撰人:yangfc、liubo