当前位置: 首页 > 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
http://www.lryc.cn/news/238729.html

相关文章:

  • 单例设计模式是什么?什么是 Singleton 单例设计模式?Python 单例(单件)设计模式示例代码
  • Redis跳跃表
  • C++基础从0到1入门编程(二)
  • Uniapp扫码预览连接地址与手机不在同一网段
  • 万界星空科技SMT行业生产管理MES系统解决方案
  • vue3 uniapp h5 安卓和iOS开发适配踩坑记录
  • inf和nan
  • 十. Linux关机重启命令与Vim编辑的使用
  • Spring-IOC-@Value和@PropertySource用法
  • 如何理解Python中一切皆对象?
  • 【如何学习Python自动化测试】—— 鼠标键盘操作
  • 随笔-事儿就这么个事儿
  • django理解03 数据库引入
  • Jtti:windows中apache怎么实现负载均衡
  • 2311rust,到43版本更新
  • 前端埋点上报的几种方式
  • 外部 prometheus监控k8s集群资源
  • centos安装神通数据库
  • 汇编-PUSHFD和POPFD标志寄存器值压栈和出栈
  • 基于SSM的进销存管理系统设计与实现
  • Django DRF限流组件
  • UEC++ day7
  • win11,安装python,pip,和opencv
  • kafka入门(一):kafka消息发送与消费
  • CMap数据库筛选化学药物
  • mysql命令行(mysql-client)连接数据库
  • sklearn中的TfidfTransformer和gensim中的TfidfModel的区别
  • spring注解
  • SpringCloud实用篇02
  • Nginx快速入门教程,域名转发、负载均衡