Docker 部署GitLabs 版本升级 13.9.x -> 15.3.x
Gitlabs版本升级大版本不能直接跳级升级, 可以参考官方的升级路径。
本人是从13.9.x需要升级到最新的15.3.x。 参考官方路径结合自己的实际情况成功升级。
13.9.0 -> 13.12.15 -> 14.0.12 ->14.1.8 -> 14.3.6 ->14.6.2 -> 14.9.5 ->14.10.5 ->15.0.3 -> 15.3.1
因为是基于Docker部署gitlabs,所以首先要在主机上创建挂载点,把gitlabs的数据挂载到主机上。
docker volume create gitlab_config
docker volume create gitlab_logs
docker volume create gitlab_data
sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:13.9.0-ce.0
接下来就是一步步的安装版本升级的路径是新创建docker 容器了。
sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_13.12.15 \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:13.12.15-ce.0 sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_14.0.12 \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:14.0.12-ce.0 sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_14.1.8 \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:14.1.8-ce.0 sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_14.3.6 \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:14.3.6-ce.0 sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_14.6.2 \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:14.6.2-ce.0 sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_14.9.5 \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:14.9.5-ce.0 sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_14.10.5 \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:14.10.5-ce.0 sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_15.0.3 \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce:15.0.3-ce.0 sudo docker run --detach \
--hostname bp.devops.gitlab \
--publish 443:443 --publish 80:80 --publish 21:22 \
--name gitlab_latest \
--restart always \
--privileged=true \
--volume gitlab_config:/etc/gitlab \
--volume gitlab_logs:/var/log/gitlab \
--volume gitlab_data:/var/opt/gitlab \
gitlab/gitlab-ce
在升级过程中如果碰到报错: Database migration fails, 可以手动执行数据 Database migration。
docker exec -it {dockerID} /bin/bash
gitlab-rake gitlab:background_migrations:finalize[ProjectNamespaces::BackfillProjectNamespaces,projects,id,'[null\,"up"]']
gitlab-rake gitlab:background_migrations:finalize[BackfillProjectSettings,projects,id,'[]']
gitlab-rake gitlab:background_migrations:finalize[BackfillIntegrationsTypeNew,integrations,id,'[]']
gitlab-rake db:migrate --trace
gitlab-rake db:migrate:status | grep 'down'
gitlab-ctl reconfigure
apt dist-upgrade
gitlab-ctl restart
以上手动执行还是失败,可以退回上一个版本,登录gitlabs的Admin Area - Background Migrations看看是否存在failed的,执行成功后,再升级即可。
gitlab 默认启用 Prometheus , 防止Gitlabs占用大量空间,可以关闭
docker exec -it {dockerID} /bin/bash
vim gitlab/config/gitlab.rb
直接修改
# prometheus['enable'] = true
prometheus['enable'] = false
gitlab-ctl stopgitlab-ctl reconfigure
gitlab-ctl start
参考:
https://gitlab.com/gitlab-org/gitlab/-/issues/363230
https://gitlab.com/gitlab-org/gitlab/-/issues/360377
Docker 部署GitLabs 版本升级 13.9.x -> 15.3.x的更多相关文章
- 我使用 Docker 部署 Celery 遇到的问题
		问题1 - Sending due task 本机测试时没有问题的,但是在线上 docker 中,任务一直显示 "Sending due task".超时的任务是 Django O ... 
- 如何使用Docker部署一个Go Web应用程序
		熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ... 
- Docker部署微服务
		部署时需要注!意!: 打开防火墙对应的应用端口!!用于外部访问!!内部互访问则不需要. 和对应数据库,缓存,消息中间件服务等的端口(当然这些服务必须先开启,它们也可使用docker部署开启) ,用于容 ... 
- AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
		一.前言 (Jenkins.Docker.Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色 角色 环境 功能 开发机 Win10.Docker(Linux OS) 编码.调试 ... 
- docker初体验:Docker部署SpringCloud项目eureka-server
		Docker部署SpringCloud项目eureka-server 1 创建eureka-server工程 创建父工程cloud-demo,其pom.xml如下: <?xml version= ... 
- docker部署tensorflow serving以及模型替换
		Using TensorFlow Serving with Docker 1.Ubuntu16.04下安装docker ce 1-1:卸载旧版本的docker sudo apt-get remove ... 
- 使用 Docker 部署 Spring Boot 项目,带劲!!
		上一篇:年轻人的第一个 Docker 应用 Docker 一次构建.处处运行及快速启停的特性,在微服务架构中有着举足轻重的地位,具体的概念性的东西就不介绍了,不懂的点击这里阅读 Docker 基础教程 ... 
- Tars | Win10下Docker部署TarsJava(SpringBoot)全过程及踩坑记录
		@ 目录 前言 1. 相关环境版本: 坑点一:VMware与Win10 Docker冲突 坑点二:20.版本TarsJava(SpringBoot)依赖文件缺失 2. Docker安装: 坑点三:Do ... 
- Docker部署lnmp 实战 (多注意配置文件,不管访问试试换个浏览器)
		Docker部署LNMP环境 关闭防火墙,设置自定义网络 systemctl stop firewalld systemctl disable firewalld setenforce 0 docke ... 
- 使用 Docker 部署 LNMP 并搭建 wordpress
		准备 系统版本:CentOS Linux release 7.4.1708 (Core) 内核版本:3.10.0-693.el7.x86_64 IP:192.168.31.43 可访问 ... 
随机推荐
- JWT( JSON Web Token —— JSON Web 令牌 )的学习笔记
			一.跨域认证的问题 互联网服务离不开用户认证.一般流程是下面这样: 1.用户向服务器发送用户名和密码. 2.服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色.登录时间等等. ... 
- ssh原理及使用场景
			用过linux系统的朋友,基本肯定会用过ssh.因为大部分的linux登录都是通过ssh将进行登录,除非你用的是类似windows的桌面版. 一.什么是SSH SSH 为 Secure Shell 的 ... 
- ASCII、Unicode、UTF8 10年后,重新整理《专题1》
			以后基本都是Unicode定义二进制对应的字符,UTF8来按照一种格式来存储Unicode二进制,所以只需知道 unicode unicode 官网:https://home.unicode.org/ ... 
- IIS的详细配置
			一:配置默认文档 输入ip打开哪个页面是由默认文档设定的 1.打开IIS配置页面,点击网站.我们的默认站点已经启动,可以看到绑定的ip和网页的路径 2.选中Default Web Site,可以看到有 ... 
- Linux进程通信 | 管道与FIFO
			Linux进程间通信通常使用的方式有很多种,其中比较常用的包括管道(pipe)和 FIFO(命名管道).本文将介绍这两种通信方式的基本概念,并用C语言编写示例代码,来说明如何在两个进程之间使用这些IP ... 
- Spring和Spring Boot的区别
			spring Spring 是一个开源轻量级框架,它允许 Java EE 7 开发人员构建简单.可靠和可扩展的企业应用程序.该框架主要侧重于提供各种方法来帮助您管理业务对象.与 Java 数据库连接 ... 
- Springboot thymeleaf实战总结
			介绍 以下总结了使用Thymeleaf做项目过程中碰到的有价值的知识点.拿出来分享! 1.配置context-path 在公共模板中添加: <script type="text/jav ... 
- Spring Boot图书管理系统项目实战-7.借阅图书
			导航: pre: 6.图书管理 next:8.续借图书 只挑重点的讲,具体的请看项目源码. 1.项目源码 需要源码的朋友,请捐赠任意金额后留下邮箱发送:) 2.页面设计 2.1 bookBorrow ... 
- oracle exp/imp命令使用parfile实现参数文件调用
			优先使用数据泵(expdp/impdp)方式,更高效,问题少. 关于exp/imp工具的使用请参考我的另一篇文章: https://blog.csdn.net/IndexMan/article/det ... 
- 摸鱼快报:golang net/http中的雕虫小技
			以后会开一个板块,摸鱼快报,快速记录这几周开发中雕虫小技. 1. 向开发环境localhost:3000种植cookie 前端使用Create React App脚手架,默认以localhost:30 ... 
