最近Gitlab安全漏洞频频,而且都是很严重的安全漏洞。通过注册用户,来抓包获取整个管理员下的所有代码仓库。今天我也正好需要升级Docker中的Gitlab到最新版本。
首先查看我们的docker容器中gitlab版本是多少。linux 输入如下命令:
docker ps -a -ls
可以看到我这个是最新版本。现在要升级到最新版本。因为gitlab官方说明,升级不能跨越大版本。所以只能一个个升级。
只能是11.x.x ->11.max.x ->12.0.x ->12.max.x 的顺序来升级。
我的具体升级路线是这样:
11.4.5-ce.0 -> 11.11.8-ce.0 -> 12.0.12-ce.0 ->12.10.7-ce.0->13.0.8-ce.0 ->latest
可在此链接查看gitlab-ce的docker全部镜像:Docker Hub
开始一个个下载其他版本
docker pull gitlab/gitlab-ce:11.11.8-ce.0
docker pull gitlab/gitlab-ce:12.0.12-ce.0
docker pull gitlab/gitlab-ce:12.10.7-ce.0
docker pull gitlab/gitlab-ce:13.0.8-ce.0
docker pull gitlab/gitlab-ce:latest
先备份
#备份gitlab
sudo docker exec -t gitlab gitlab-rake gitlab:backup:create
下完后重复执行以下命令(注意gitlab/gitlab-ce:11.11.8-ce.0 这个版本是当前要升级的版本,是一步一步改的最终修改为latest,顺序不要乱)
sudo docker exec gitlab gitlab-ctl stop
sudo docker stop gitlab && docker rm gitlab
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 222:22 \
--name gitlab \
--restart always \
--volume /home/gitlab/config:/etc/gitlab \
--volume /home/gitlab/logs:/var/log/gitlab \
--volume /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:11.11.8-ce.0
查看docker 启动镜像日志命令
docker logs gitlab -f --tail=20 #查看最后20行日志 -f实时日志
最终等几分钟就可以访问了。