docker gitlab升级到14.4.2
一、概述
目前gitlab版本是13.3.5,使用docker部署。近期阿里云发出警告,有恶意代码执行,今查询,是gitlab漏洞导致,需要升级到最新版本。
目前已知的最新版本是14.4.2
二、升级策略
参考官方文档:https://docs.gitlab.com/ee/update/#installation-using-docker
13版本升级路径为:13.0.14-> 13.1.11-> 13.8.8-> 13.12.15->最新14.0.Z->最新14.1.Z->最新14.Y.Z
由于我的版本为13.3.5,因此升级路径为: 13.8.8-> 13.12.15->最新14.0.Z->最新14.1.Z->最新14.Y.Z
dockerhub官方链接: https://registry.hub.docker.com/r/gitlab/gitlab-ce
先下载所需要的镜像
docker pull gitlab/gitlab-ce:13.8.8-ce.0 docker pull gitlab/gitlab-ce:13.12.15-ce.0 docker pull gitlab/gitlab-ce:14.0.12-ce.0 docker pull gitlab/gitlab-ce:14.1.8-ce.0 docker pull gitlab/gitlab-ce:14.2.6-ce.0 docker pull gitlab/gitlab-ce:14.3.4-ce.0 docker pull gitlab/gitlab-ce:14.4.2-ce.0
三、备份
当前的docker启动命令为:
docker run -d \ --restart=always \ --name=gitlab-ce \ -p 8443:443 \ -p 8090:80 \ -p 8022:22 \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -v /data/gitlab/ssl:/etc/gitlab/ssl \ gitlab/gitlab-ce:13.3.5-ce.0
先停止gitlab,再拷贝目录
docker stop gitlab-ce cp -rp /data/gitlab /data/gitlab.bak
三、正式升级
升级到13.8.8
先删除gitlab,再启动,注意,使用镜像版本为13.8.8
docker stop gitlab-ce docker run -d \ --restart=always \ --name=gitlab-ce \ -p 8443:443 \ -p 8090:80 \ -p 8022:22 \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -v /data/gitlab/ssl:/etc/gitlab/ssl \ gitlab/gitlab-ce:13.8.8-ce.0
查看gitlab docker日志
docker logs -f gitlab-ce
等待10分钟左右,当出现
... ==> /var/log/gitlab/nginx/gitlab_access.log <== 127.0.0.1 - - [21/Nov/2021:06:03:15 +0000] "GET /help HTTP/1.1" 200 68265 "" "curl/7.74.0-DEV" - ...
表示gitlab已经完全启动好了
登录gitlab,点击帮助,查看gitlab版本
升级到13.12.15
注意:必须先修改配置文件,否则启动时,会报错,提示没有配置完整的域名。
修改/data/gitlab/config/gitlab.rb文件,内容如下:
external_url = 'gitlab.aliyun.com'
注意:这里有一个等号,老版本是没有等号的。
先删除gitlab,再启动,注意,使用镜像版本为13.12.15
docker stop gitlab-ce docker run -d \ --restart=always \ --name=gitlab-ce \ -p 8443:443 \ -p 8090:80 \ -p 8022:22 \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -v /data/gitlab/ssl:/etc/gitlab/ssl \ gitlab/gitlab-ce:13.12.15-ce.0
接下来就是查看日志,等待10分钟,步骤同上!
查看gitlab版本
升级到14.0.12
注意:需要先修改配置文件,否则直接启动会报错:
* unicorn['worker_processes'] has been deprecated since 13.10 and was removed in 14.0. Starting with GitLab 14.0, Unicorn is no longer supported and users must switch to Puma, following https://docs.gitlab.com/ee/administration/operations/puma.html.
修改/data/gitlab/config/gitlab.rb文件,将这行注释掉
unicorn['worker_processes'] = 2
新增2行配置
puma['worker_timeout'] = 60 puma['worker_processes'] = 2
先删除gitlab,再启动,注意,使用镜像版本为14.0.12-ce.0
docker stop gitlab-ce docker run -d \ --restart=always \ --name=gitlab-ce \ -p 8443:443 \ -p 8090:80 \ -p 8022:22 \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -v /data/gitlab/ssl:/etc/gitlab/ssl \ gitlab/gitlab-ce:14.0.12-ce.0
等待10分钟,查看版本
升级到14.1.8
注意:14版本不能一步到位,必须要14.0.x-->14.1.x-->14.2.x-->14.3.x,以此类推,否则会导致数据迁移失败。
先删除gitlab,再启动,注意,使用镜像版本为14.1.8
docker stop gitlab-ce docker run -d \ --restart=always \ --name=gitlab-ce \ -p 8443:443 \ -p 8090:80 \ -p 8022:22 \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -v /data/gitlab/ssl:/etc/gitlab/ssl \ gitlab/gitlab-ce:14.1.8-ce.0
等待10分钟,查看版本
升级到14.2.6
注意:升级到14.2.x,需要执行2个命令:
先进入gitlab容器
docker exec -it gitlab-ce /bin/bash
执行以下命令:
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,push_event_payloads,event_id,'[["event_id"]\, ["event_id_convert_to_bigint"]]'] gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_stages,id,'[["id"]\, ["id_convert_to_bigint"]]']
先删除gitlab,再启动,注意,使用镜像版本为14.2.6
docker stop gitlab-ce docker run -d \ --restart=always \ --name=gitlab-ce \ -p 8443:443 \ -p 8090:80 \ -p 8022:22 \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -v /data/gitlab/ssl:/etc/gitlab/ssl \ gitlab/gitlab-ce:14.2.6-ce.0
等待10分钟,查看版本
升级到14.3.4
先删除gitlab,再启动,注意,使用镜像版本为14.3.4
docker stop gitlab-ce docker run -d \ --restart=always \ --name=gitlab-ce \ -p 8443:443 \ -p 8090:80 \ -p 8022:22 \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -v /data/gitlab/ssl:/etc/gitlab/ssl \ gitlab/gitlab-ce:14.3.4-ce.0
等待10分钟,查看版本
升级到14.4.2
先删除gitlab,再启动,注意,使用镜像版本为14.4.2
docker stop gitlab-ce docker run -d \ --restart=always \ --name=gitlab-ce \ -p 8443:443 \ -p 8090:80 \ -p 8022:22 \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -v /data/gitlab/ssl:/etc/gitlab/ssl \ gitlab/gitlab-ce:14.4.2-ce.0
等待10分钟,查看版本
四、修改项目clone地址
进入docker里面,修改文件
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
修改Host字段
production: &base # # 1. GitLab app settings # ========================== ## GitLab settings gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: aliyun.baidu.com
重启gitlab
gitlab-ctl restart
刷新页面,再次查看项目clone地址,就正确了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2019-11-21 忘记token怎么加入k8s集群
2018-11-21 python_docx制作word文档