自己购买的 1C2G 腾讯云服务器。
CentOS 7.6。
以下操作均在 root 账号下进行。
修改宿主的 SSH 端口,使用非 22 端口,这样以后从自建 gitlab 上拉取代码可以少费些功夫了。此外,管理用的宿主 SSH 端口改成别的也更安全。
修改 SSHD 配置文件,/etc/ssh/sshd_config
,将其中的 Port 22
改为其它端口号,然后service sshd restart
。
semanage port -a -t ssh_port_t -p tcp 2222
由于 GitLab 较为消耗资源,我们需要先创建交换分区,以降低物理内存的压力。在实际生产环境中,如果服务器配置够高,则不必配置交换分区。(我 好 穷 啊
新建 8 GB 大小的交换分区(一般来说 2 GB 就够了,可以自己改下面的大小):
dd if=/dev/zero of=/root/swapfile bs=1M count=8192
使用 SWAP 分区专用的格式化命令mkswap
,对新建的主分区进行格式化操作:
mkswap /root/swapfile
swapon /root/swapfile
为了能够让新的交换分区设备在重启后依然生效,需要将相关信息写入到配置文件中。
echo "/root/swapfile swap swap defaults 0 0" >> /etc/fstab
yum update -y
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl start docker
docker run \
--detach \
--hostname gitlab.wu-kan.cn \
--name gitlab-ce \
--restart always \
--publish 443:443 \
--publish 80:80 \
--publish 22:22 \
--env GITLAB_OMNIBUS_CONFIG=\
"external_url 'https://gitlab.wu-kan.cn/'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['i@wu-kan.cn']
gitlab_pages['enable'] = true
pages_external_url 'http://gitlab-pages.wu-kan.cn/'" \
gitlab/gitlab-ce
运行 docker container ls
,可以看到下面容器的状态是(health: starting)
。等这个状态变成 (healthy)
时则说明已经部署完成,可以访问了。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
1a6c9c5ea464 gitlab/gitlab-ce "/assets/wrapper" About a minute ago Up About a minute (health: starting) 0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp gitlab-ce
运行的时候配置过低的话(比如我),会出现终端卡死。进入云服务商的监控页可以看到 CPU 和内存都是爆满的,建议喝一杯茶再回来看。
如果持续出现 unhealthy
的状态,可以考虑重启 docker 服务。
service docker restart