之前组了一台 E5 的服务器放在家里自用,但是夏天来了,服务器的温度也逐渐变高。正好设备从 Mac Mini 换到了 MacBook Air,于是就想着把 M1 的 MacMini 拿来当作服务器,这样功耗低,温度低,性能也比之前的好~
在 Mac 图形界面上,通过正常的方式安装 Docker Desktop,这一步不再赘述。

P.S. 可以通过在 访达>网络 中找到你的设备,直接开启远程桌面,还是相当丝滑

在远程 Mac 的设置中开启 SSH 功能,记得也勾选上对应的文件共享 (https://support.apple.com/zh-cn/guide/mac-help/mchlp1066/mac)
接着,在本地终端中连接即可

这里输入密码时和 Linux 系统一样,是不会显示的
我外挂了一块 1T 的硬盘,用作数据盘。在 Mac 的磁盘工具中给他格式化之后,通过命令行进去,编辑一个 docker-compose 文件

这个文件可以指定一系列 Docker 容器按一定的顺序启停,但是这里我们主要是为了编辑配置方便,否则每次启动都得使用一大串指令
首先我按照官方的配置文件粘贴修改,发现无法开启

发现这个鬼镜像似乎是只支持 x86 的 CPU,在网上搜索后,找到了 Arm64 版本的镜像
https://github.com/zengxs/gitlab-arm64
这里给出我的配置文件:
services:
gitlab:
image: zengxs/gitlab:latest
container_name: gitlab
restart: always
hostname: 'gitlab.xxxx.xyz'
environment:
- GITLAB_HOME=/Volumes/Data/Gitlab
- GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.xxxx.xyz:12332';"
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
shm_size: '256m'
好像容器并不认配置中的环境变量,所以需要在运行前手动 export 一下
export GITLAB_HOME=/Volumes/Data/Gitlab
docker compose up -d

发现端口占用,再进入配置文件修改一下端口即可

再次启动就能看见启动成功了~
这里注意的是,我这里花了三分钟的时间启动,其实是因为桌面上这时候会跳出授权窗口,问是否允许 Docker 访问外置硬盘的内容,点击允许后就 OK 了
等待启动完成,并且配置反向代理(到之前配置中写的地址。如果你是使用的默认的 0.0.0.0 和 http://localhost 就不用配置)就可以访问了。

要获取初始的密码,打开访达,回到你刚刚指定的 GITLAB_HOME 文件夹

打开 config 文件夹,就能看见这样的文件

现在可以用 root 账号和文件中的密码登录。
登录后,可以来到这个位置更改登录信息

记得在下面一起把密码改了,不然这么长确实不好记
保存后会被登出,重新登录即可
迁移数据
现在已经跑起来了,需要从以前的 Gitlab 实例中恢复数据
以下方法还会恢复你的配置文件,如果想只迁移存储库,请按这篇文章来:https://docs.gitlab.com/user/project/import/
SSH 登录旧服务器,执行备份指令

将备份文件传输到新服务器


把文件丢进新服务器的备份文件夹
执行备份指令

不出所料的炸了,原因是版本不一致,我们需要手动切换到一样的版本
编辑 compose 文件,然后运行


接着重新运行恢复指令

然后就等着启动了


成功