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 stop
gitlab-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 可访问 ...
随机推荐
- window下部署单机hadoop环境
window本地部署单机hadoop,修改配置文件和脚本如下,只记录关键配置和步骤,仅供参考 hadoop-2.6.5 spark-2.3.3 1.配置文件core-site.xml <conf ...
- centos7.9离线升级openssl和openssh9.2
前言 最近有几台服务器漏扫出了关于openssh的漏洞,升级完后顺便记录一下. 环境 CentOS Linux release 7.9.2009 (Core) 开始升级 准备工作 下载安装包: zli ...
- ChatGPT - 圈里的百科
ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI [1] 研发的聊天机器人程序 [12] ,于2022年11月30日发布 [ ...
- 【链表】双向链表的介绍和基本操作(C语言实现)【保姆级别详细教学】
双向链表 文章目录 前言 双向链表的基本介绍 一些链表的分类 带头双向循环链表的基本结构 双向链表的实现 结点的定义.头指针的创建 开辟结点接口 初始化头结点接口 打印接口 尾插接口 尾删接口 头插接 ...
- windows 激活工具
https://files-cdn.cnblogs.com/files/del88/heukms.zip
- [Java][并发编程]AQS以及其相关同步器的源码解析
AQS以及其相关同步器的源码解析 概念 AQS(AbstractQueuedSynchronizer)抽象的队列同步器.是用来构建锁或者其他同步器组件的重量级基础框架以及整个JUC体系的基石.通过内置 ...
- Python中用With open as 实现对文件的操作
with open as f在Python中用来读写文件(夹). 基本写法如下: with open(文件名,模式)as f: f.write(内容)#写操作 例:with open ('这个文章.t ...
- col命令
col命令 在很多UNIX说明文件里,都有RLF控制字符,当我们把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col命令则能有效滤除这些控制字符. 语法 col [options] 参数 - ...
- paste命令
paste命令 paste命令会把每个文件以列对列的方式,一列列地加以合并. 语法 paste [OPTION]... [FILE]... 参数 -d, --delimiters=[LIST]: 用指 ...
- 如何设置 vcpkg 依赖特定编译器
最近项目要部署到 gitlab-ci 上,所以远程机器上也要安装好编译环境 在相关的环境安装完后,发现编译项目时提示找不到三方库的符号文件 看到这个错误的第一反应就是依赖库的版本不对,因为远程机器上不 ...