docker部署gitlab 12.10.6过程
docker部署gitlab 12.10.6过程
1.docker安装
docker指定版本安装【官方文档步骤】
官方文档地址:https://docs.docker.com/engine/install/centos/
# 1.安装yum工具及设置docker-ce镜像库
sudo yum install -y yum-utils# 国外的镜像下载太慢了改成阿里云镜像库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 2.阿里云镜像库
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 3.查询docker可用稳定版本
yum list docker-ce --showduplicates | sort -r[root@VM-0-17-centos ~]# yum list docker-ce --showduplicates | sort -r
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror, langpacks
Installed Packages
docker-ce.x86_64 3:24.0.6-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.6-1.el7 @docker-ce-stable
docker-ce.x86_64 3:24.0.5-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.4-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.3-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.2-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.1-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.0-1.el7 docker-ce-stable
docker-ce.x86_64 3:23.0.6-1.el7 docker-ce-stable
docker-ce.x86_64 3:23.0.5-1.el7 docker-ce-stable
docker-ce.x86_64 3:23.0.4-1.el7 docker-ce-stable # 4.安装指定版本<24.0.6>版本
yum install docker-ce-24.0.6 -y# 5.添加开机启动docker服务及运行启动docker服务
systemctl enable docker
systemctl start docker
2.配置国内docker源,使其下载镜像更快
[root@localhost ]# cat /etc/docker/daemon.json
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}# 上述为文件内容添加以后重载docker配置及重启docker服务
systemctl daemon-reload
systemctl restart docker
3.根据github步骤分别启动redis、postgresql、gitlab容器
地址:https://github.com/sameersbn/docker-gitlab/tree/12.10.6#quick-start
docker run --name gitlab-redis -d \
--volume /data/gitlab/redis:/var/lib/redis \
sameersbn/redis:4.0.9-2
docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=youyigame@2023' \
--env 'DB_EXTENSION=pg_trgm' \
--volume /data/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:10-2
在启动gitlab容器之前,需要先准备几个参数的值
#gitlab的域名
GITLAB_HOST: gitlab.xxx.com
#gitlab容器内的时区,rails中时区不使用shanghai,用beijing
GITLAB_TIMEZONE:Beijing
#gitlab容器内的仓库http地址端口
GITLAB_PORT:80
#gitlab容器内的仓库ssh地址端口
GITLAB_SSH_PORT:10022
#base64编码的随机字符串,以下参数可在在线base64网站中生成
GITLAB_SECRETS_DB_KEY_BASE
GITLAB_SECRETS_SECRET_KEY_BASE
GITLAB_SECRETS_OTP_KEY_BASE
以上参数准备好以后即可运行gitlab容器,运行后等待几分钟即可进入首页
docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--env GITLAB_HOST=gitlab.xxxx.com \
--env GITLAB_TIMEZONE=Beijing \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=80' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_BACKUP_SCHEDULE=daily' \
--env 'GITLAB_BACKUP_TIME=01:00' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=eW91eWlnYW1lQDIwMjM' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=eW91eWlnYW1lQDIwMjM' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=eW91eWlnYW1lQDIwMjM' \
--volume /data/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:12.10.6
5.gitlab备份方式
- 1.启动容器时增加参数, 容器内时区为UTC,每天凌晨1点定时备份,即每天9点备份一次
--env 'GITLAB_BACKUP_SCHEDULE=daily' \
--env 'GITLAB_BACKUP_TIME=01:00' \
- 2.进入容器备份
# 进入容器
docker exec -it gitlab bash# 切换用户为git,使用git命令进行备份
su gitcd /home/git/gitlab/bin./rake gitlab:backup:create
- 3.容器外执行备份,备份时间为当前时间,可写shell定时备份
docker exec -it --user git gitlab ./bin/rake gitlab:backup:create
4.nginx站点反向代理
upstream gitlab {server 127.0.0.1:10080;}server {listen 80;server_name gitlab.xxxx.com;location / {client_max_body_size 200m;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-NginX-Proxy true;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_pass http://gitlab;proxy_redirect off;}
}
5.【版本升级注意事项】
【sameersbn/gitlab】与官方的docker部署相比较为简单,按照版本由低到高一步一步拉起容器,及时观察容器启动日志。容器内部会自动进行数据迁移,如遇到错误,根据错误解决即可,大多遇到的错误都是缺少参数,在容器启动时,将版本差异的参数补齐即可。
- ① 先将现有的gitlab仓库映射的文件夹备份迁移至新机器
- ② 建议先升到当前大版本的最高小版本再升到下个大版本的第一个小版本,版本可在sameersbn/gitlab 的tag中查找。
例如:12.10.6 —> 13.0.0 —> 13.12.4 —> 14.0.0 —> 14.1.1 -> 14.2.1 在往后升级版本会出现报错,暂未解决 - ③ 升级完毕后检查各项功能是否有问题,如【能否正常拉取提交代码,镜像仓库,webhook功能等】
客户端配置
由于在启动容器时配置gitlab的ssh端口不为22。所以要在本地.ssh/config中增加如下配置才能正常拉取ssh地址仓库代码。
Host gitlab.xxx.comHostName gitlab.xxx.comUser gitPort 10022IdentityFile ~/.ssh/id_rsa
相关文章:
docker部署gitlab 12.10.6过程
docker部署gitlab 12.10.6过程 1.docker安装 docker指定版本安装【官方文档步骤】 官方文档地址:https://docs.docker.com/engine/install/centos/ # 1.安装yum工具及设置docker-ce镜像库 sudo yum install -y yum-utils# 国外的镜像下载太慢了改成阿里云镜像库 s…...
单例设计模式是什么?什么是 Singleton 单例设计模式?Python 单例(单件)设计模式示例代码
什么是 Singleton 单例设计模式? 单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。 主要思想: 单例模式确保某个类只有一个实例,并提供了一个访问该实例的全局访问点。它…...
Redis跳跃表
前言 跳跃表(skiplist)是一种有序数据结构,它通过在每一个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表支持平均O(logN),最坏O(N),复杂度的节点查找,还可以通过顺序性来批量处理节点…...
C++基础从0到1入门编程(二)
系统学习C 方便自己日后复习,错误的地方希望积极指正 往期文章:C基础从0到1入门编程(一) 参考视频: 1.黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难 2.系统化学习C 1 函数指针和回调函数 如果把函数的地址…...
Uniapp扫码预览连接地址与手机不在同一网段
在开发Uniapp应用时,这里有一个扫码预览的功能,电脑与手机都是在一网络下,之前点开后预览地址一直是169.254.3.x的地址,通过WINR键输入cmd运行,然后ipconfig查看所有网络连接。发现有一个虚拟网络连接的地址是169.251.…...
万界星空科技SMT行业生产管理MES系统解决方案
一、SMT行业特点: SMT(Surface Mounted Technology)作为电子组装行业里首先的技术和工艺,选择合适的MES解决方案来保障SMT生产的成功至关重要。 电子行业涉及的范围非常广,包含了汽车、电脑、电视、手机等产品上&…...
vue3 uniapp h5 安卓和iOS开发适配踩坑记录
font-size适配屏幕大小及iOS和安卓状态栏及安全距离的处理 App.vue <script setup lang"ts"> import { onLaunch, onShow, onHide } from "dcloudio/uni-app"; import ./main.scss onLaunch(() > {console.log("App Launch");var wid…...
inf和nan
在某些编程语法中inf表示无穷大,nan表示不是一个数(not a number) nan表示这个数不确定,而无穷大表示这个数任意大 1/0inf 这里把0当做一个无限接近0,但是非0的数 5-inf-inf 一个数减去无穷大会等于负无穷大 而inf-infnan 因为两个无穷大相减有很多可能,可能等于一个常数,也可能…...
十. Linux关机重启命令与Vim编辑的使用
关机重启命令 shutdown命令 其他关机命令 其他重启命令 系统运行级别 系统默认运行级别与查询 退出登录命令logout 文本编辑器Vim Vim简介 没有菜单,只有命令Vim工作模式 Vim常用命令 插入命令 定位命令 删除命令 复制和剪切命令 替换和取消命令 搜索和搜索替换命令 保存和退出…...
Spring-IOC-@Value和@PropertySource用法
1、Book.java PropertySource(value"classpath:配置文件地址") 替代 <context:property-placeholder location"配置文件地址"/> Value("${book.bid}") Value("${book.bname}") Value("${book.price}") <bean id&…...
如何理解Python中一切皆对象?
Python 一、示例代码二、Python中的魔法方法 一、示例代码 有理数类 import mathclass rational:def __init__(self,p,q):self.p pself.q qdef __str__(self):return "{} / {}".format(self.p,self.q)def simplify(self):gcd math.gcd(self.p,self.q)return rat…...
【如何学习Python自动化测试】—— 鼠标键盘操作
5 、 鼠标键盘操作 在浏览器中,通常会用到鼠标来进行操作,比如右键菜单中选择一个操作,在 selenium 中提供了下列鼠标相关操作。 ActionChains 类提供了以下方法: 点击鼠标:click()右击鼠标:context…...
随笔-事儿就这么个事儿
好久没写了,小A要催更,还答应让我写一下他的经历,这还有啥说的,开整。 1、升级 前段时间登录公司的办公系统处理一个事务申请,发现有个粗体标红的通知,是关于今年的晋升名单公示。进去看了一眼࿰…...
django理解03 数据库引入
配置 settings.py DATABASES {"default": {"ENGINE": "django.db.backends.mysql",NAME:307_django_db,USER: root,PASSWORD: 123456,HOST: 127.0.0.1,PORT: 3306,} }先创建指定名称的数据库databases create database self_django_db DEFAUL…...
Jtti:windows中apache怎么实现负载均衡
Jtti:windows中apache怎么实现负载均衡 在Windows环境下,你可以使用Apache HTTP Server搭建负载均衡集群。Apache提供了一个模块叫做mod_proxy,它可以用来实现反向代理和负载均衡。以下是一个简单的步骤来配置Apache负载均衡: 步骤…...
2311rust,到43版本更新
1.38.0 流水编译 要编译仓库,编译器不需要完全构建依赖项.相反,只需要它们的"元数据"(即类型,依赖关系,导出列表). 在编译过程的早期生成此元数据.从Rust1.38.0开始,Cargo利用这一点,在准备好元数据后立即自动开始构建依赖的仓库. 检查错误使用mem::{uninitialize…...
前端埋点上报的几种方式
现代Web应用程序中,埋点上报是一种重要的数据收集和分析手段。本文将介绍前端埋点上报的几种常见方式,并详细阐述如何在项目中运用这些方式进行数据上报,以帮助开发者更好地进行数据收集和分析。 上报方式 在前端中,常见的埋点上…...
外部 prometheus监控k8s集群资源
prometheus监控k8s集群资源 一,通过CADvisior 监控pod的资源状态1.1 授权外边用户可以访问prometheus接口。1.2 获取token保存1.3 配置prometheus.yml 启动并查看状态1.4 Grafana 导入仪表盘 二,通过kube-state-metrics 监控k8s资源状态2.1 部署 kube-st…...
centos安装神通数据库
1、安装 wget工具 yum install -y wget2、安装rar解压工具 wget --no-check-certificate http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz tar zxvf rarlinux-x64-5.3.0.tar.gz && cd rar/ && make install3、下载oscar神通数据库(linux 64…...
汇编-PUSHFD和POPFD标志寄存器值压栈和出栈
PUSHFD指令将32位EFLAGS寄存器内容压入堆栈, 而POPFD指令则将栈顶单元内容弹出到EFLAGS寄存器 格式:...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
