当前位置: 首页 > news >正文

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指定版本安装【官方文档步骤】 官方文档地址&#xff1a;https://docs.docker.com/engine/install/centos/ # 1.安装yum工具及设置docker-ce镜像库 sudo yum install -y yum-utils# 国外的镜像下载太慢了改成阿里云镜像库 s…...

单例设计模式是什么?什么是 Singleton 单例设计模式?Python 单例(单件)设计模式示例代码

什么是 Singleton 单例设计模式&#xff1f; 单例模式是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。 主要思想&#xff1a; 单例模式确保某个类只有一个实例&#xff0c;并提供了一个访问该实例的全局访问点。它…...

Redis跳跃表

前言 跳跃表(skiplist)是一种有序数据结构&#xff0c;它通过在每一个节点中维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的。 跳跃表支持平均O(logN)&#xff0c;最坏O(N)&#xff0c;复杂度的节点查找&#xff0c;还可以通过顺序性来批量处理节点…...

C++基础从0到1入门编程(二)

系统学习C 方便自己日后复习&#xff0c;错误的地方希望积极指正 往期文章&#xff1a;C基础从0到1入门编程&#xff08;一&#xff09; 参考视频&#xff1a; 1.黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难 2.系统化学习C 1 函数指针和回调函数 如果把函数的地址…...

Uniapp扫码预览连接地址与手机不在同一网段

在开发Uniapp应用时&#xff0c;这里有一个扫码预览的功能&#xff0c;电脑与手机都是在一网络下&#xff0c;之前点开后预览地址一直是169.254.3.x的地址&#xff0c;通过WINR键输入cmd运行&#xff0c;然后ipconfig查看所有网络连接。发现有一个虚拟网络连接的地址是169.251.…...

万界星空科技SMT行业生产管理MES系统解决方案

一、SMT行业特点&#xff1a; SMT&#xff08;Surface Mounted Technology&#xff09;作为电子组装行业里首先的技术和工艺&#xff0c;选择合适的MES解决方案来保障SMT生产的成功至关重要。 电子行业涉及的范围非常广&#xff0c;包含了汽车、电脑、电视、手机等产品上&…...

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 、 鼠标键盘操作 在浏览器中&#xff0c;通常会用到鼠标来进行操作&#xff0c;比如右键菜单中选择一个操作&#xff0c;在 selenium 中提供了下列鼠标相关操作。 ActionChains 类提供了以下方法&#xff1a; 点击鼠标&#xff1a;click()右击鼠标&#xff1a;context…...

随笔-事儿就这么个事儿

好久没写了&#xff0c;小A要催更&#xff0c;还答应让我写一下他的经历&#xff0c;这还有啥说的&#xff0c;开整。 1、升级 前段时间登录公司的办公系统处理一个事务申请&#xff0c;发现有个粗体标红的通知&#xff0c;是关于今年的晋升名单公示。进去看了一眼&#xff0…...

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&#xff1a;windows中apache怎么实现负载均衡 在Windows环境下&#xff0c;你可以使用Apache HTTP Server搭建负载均衡集群。Apache提供了一个模块叫做mod_proxy&#xff0c;它可以用来实现反向代理和负载均衡。以下是一个简单的步骤来配置Apache负载均衡&#xff1a; 步骤…...

2311rust,到43版本更新

1.38.0 流水编译 要编译仓库,编译器不需要完全构建依赖项.相反,只需要它们的"元数据"(即类型,依赖关系,导出列表). 在编译过程的早期生成此元数据.从Rust1.38.0开始,Cargo利用这一点,在准备好元数据后立即自动开始构建依赖的仓库. 检查错误使用mem::{uninitialize…...

前端埋点上报的几种方式

现代Web应用程序中&#xff0c;埋点上报是一种重要的数据收集和分析手段。本文将介绍前端埋点上报的几种常见方式&#xff0c;并详细阐述如何在项目中运用这些方式进行数据上报&#xff0c;以帮助开发者更好地进行数据收集和分析。 上报方式 在前端中&#xff0c;常见的埋点上…...

外部 prometheus监控k8s集群资源

prometheus监控k8s集群资源 一&#xff0c;通过CADvisior 监控pod的资源状态1.1 授权外边用户可以访问prometheus接口。1.2 获取token保存1.3 配置prometheus.yml 启动并查看状态1.4 Grafana 导入仪表盘 二&#xff0c;通过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神通数据库&#xff08;linux 64…...

汇编-PUSHFD和POPFD标志寄存器值压栈和出栈

PUSHFD指令将32位EFLAGS寄存器内容压入堆栈&#xff0c; 而POPFD指令则将栈顶单元内容弹出到EFLAGS寄存器 格式&#xff1a;...

3个微信聊天记录备份痛点与开源解决方案:WeChatExporter完全指南

3个微信聊天记录备份痛点与开源解决方案&#xff1a;WeChatExporter完全指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因手机丢失或更换而痛失珍贵的微信聊…...

东阳光280亿鲸吞秦淮数据后再接190亿算力大单,高杠杆下资本并购与产业落地挑战几何?

东阳光再接190亿算力大单宣布鲸吞280亿秦淮数据后&#xff0c;5月6日&#xff0c;东阳光(600673.SH)又接下了最高190亿元的算力大单。公告显示&#xff0c;东阳光控股子公司东莞东阳光云智算科技有限公司与某企业A公司签署了《算力服务采购框架合同》&#xff0c;合同预计总金额…...

提示词工程day2-day4

提示词工程 Day2 进阶写法&#xff08;核心 5 点&#xff09;强制固定输出格式可指定模型按&#xff1a;分点列表、表格、JSON、步骤式、只给结论、不加废话 输出。常用指令&#xff1a;请分点作答请用表格整理只给最终结果&#xff0c;不要多余解释链式思维&#xff1a;让模型…...

在Node.js后端服务中集成Taotoken实现异步调用多模型AI接口

在Node.js后端服务中集成Taotoken实现异步调用多模型AI接口 对于需要在后端服务中调用大语言模型的Node.js开发者而言&#xff0c;直接对接多个厂商的API往往意味着复杂的密钥管理、不同的调用方式和分散的计费统计。Taotoken平台通过提供统一的OpenAI兼容API&#xff0c;简化…...

车载光通信芯片:行业现状、技术卡点与国产化实情

在汽车电子行业&#xff0c;我们正处于一个临界点。随着 EEA&#xff08;电子电气架构&#xff09;从分布式向中央计算迈进&#xff0c;传统的屏蔽双绞线在带宽、减重和 EMI&#xff08;电磁干扰&#xff09;上已经快走到头了。车载光通信不是什么新鲜概念&#xff0c;但现在&a…...

股市新手必看:八大核心财务指标详解(附实战案例)

看懂这八个指标&#xff0c;你就不再是任人宰割的“韭菜”在股市中&#xff0c;面对密密麻麻的财务数据&#xff0c;很多新手朋友往往一脸茫然。总市值、净资产、净利润、市盈率、市净率……这些指标到底是什么意思&#xff1f;它们能帮我们判断一家公司值不值得投资吗&#xf…...

Etsy多账号用什么浏览器?多账号需要防关联吗?

做跨境手工艺品和虚拟数字产品&#xff08;Digital product&#xff09;的圈子里&#xff0c;Etsy绝对是大家又爱又恨的平台。爱它是因为流量精准、利润极高、客户舍得花钱&#xff1b;恨它是因为——它的风控实在是太太太变态了&#xff01;“一言不合就封店”、“注册即死”、…...

深入解析MPC-BE:Windows平台终极开源媒体播放器的5大核心技术架构

深入解析MPC-BE&#xff1a;Windows平台终极开源媒体播放器的5大核心技术架构 【免费下载链接】MPC-BE MPC-BE – универсальный проигрыватель аудио и видеофайлов для операционной системы Windows. 项…...

Silvaco TCAD光源设置保姆级教程:从2D高斯光束到3D复杂光源,手把手搞定光电器件仿真

Silvaco TCAD光源设置实战指南&#xff1a;从基础参数到高级光学仿真技巧 在光电器件仿真领域&#xff0c;光源设置是决定模拟结果准确性的关键环节。无论是研究太阳能电池的光电转换效率&#xff0c;还是分析光电探测器的响应特性&#xff0c;精确的光源配置都能为仿真提供可靠…...

算法测试终极指南:如何确保Algorithms39项目中复杂算法的正确性与性能

算法测试终极指南&#xff1a;如何确保Algorithms39项目中复杂算法的正确性与性能 【免费下载链接】Algorithms A collection of algorithms and data structures 项目地址: https://gitcode.com/gh_mirrors/algorithms39/Algorithms 在软件开发领域&#xff0c;算法的正…...