docker gitlab迁移 备份 部署 搭建以及各种问题
当前环境
- 服务器A
- 服务器B
- ubuntu
- docker
- gitlab(版本一致)
docker安装gitlab
由于考虑到gitlab 包含了⾃身的nginx、数据库、端⼝占⽤等等因数,这⾥使⽤的是docker安装; 如何安装docker? 这里暂不概述
拉取gitlab image
# gitlab-ce为稳定版本,后⾯不填写版本则默认pull最新latest版本
docker pull gitlab/gitlab-ce
启动gitlab
sudo docker run --detach \
--hostname www.example.com \
--publish 8091:80 --publish 8022:22 \
--name gitlab \
--restart always \
--volume /mnt/gitlab/config:/etc/gitlab \
--volume /mnt/gitlab/logs:/var/log/gitlab \
--volume /mnt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
- --hostname 配置gitlab 服务器域名
- --publish 配置容器 端⼝映射 容器80端⼝->宿主机8091
- --name 容器名
- --restart 配置重启指令
- --volume 配置容器⽬录映射 --volume /mnt/gitlab/config:/etc/gitlab 容器中 / etc/gitlab 映射到宿主机⾥的 /mnt/gitlab/config
配置:/etc/gitlab.rb
进⼊docker docker exec -it <容器ID> 进⼊ /etc/gitlab/gitlab.rb 空⽩处加上
#gitlab服务器访问地址
external_url 'http://gitlab.example.com'
#gitlab ssh端⼝
gitlab_rails['gitlab_shell_ssh_port'] = 8022
重启gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
nginx反向代理
由于gitlab 容器映射的端⼝不是80端⼝,所以需要在宿主机上做⼀层反向代理:将 www.example.com 域名请求代理到本机的8091端⼝
#宿主机配置反向代理
server {
listen 80;
server_name www.exanple.com
location / {
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://127.0.0.1:8091$request_uri;
proxy_redirect off;
}
}
docker迁移gitlab
首先保证服务器A 和 服务器B 的gitlab版本一致,建议用同一个images
假设现在要把服务器A的gitlab全部迁移至服务器B
备份gitlab
进入服务器A镜像
docker exec -it gitlab /bin/bash
停止项目,主要目的是为了防止有人提交代码
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
备份
gitlab-rake gitlab:backup:create
这里会得到一个压缩包。路径在/mnt/gitlab/data/backups/1654170874_2022_06_02_11.1.4_gitlab_backup.tar
下载压缩包上传到服务器B
下面操作服务器B
把压缩包放到/mnt/gitlab/data/backups目录下面
chmod +x 1654170874_2022_06_02_11.1.4_gitlab_backup.tar 防止gitlab操作没有权限。这里加上可操作权限
进入服务器A镜像
docker exec -it gitlab /bin/bash
停止项目,主要目的是为了防止有人提交代码
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab自动生成表格
gitlab-rake gitlab:backup:restore BACKUP=1654170874_2022_06_02_11.1.4
这里一直yes下去就行。大概3-5分就完成了。主要看服务器配置
重启
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
完成
问题
docker安装gitlab完成之后访问一直是504 time out怎么办?
猜测应该是腾讯云服务器,腾讯云服务器的网段跟docker冲突。可以进入gitlab容器里面curl 127.0.0.1看下是否能ping通,正常是可以的。然后ping baidu.com就无法ping通。同时:docker无法映射端口也可以看下是否是这个问题导致
# 解决方案
在宿主机 vim /etc/docker/daemon.json
有这个文件就追加"bip": "192.168.1.5/24"
没有就直接生成{"bip": "192.168.1.5/24"}即可
参考:https://qq52o.me/2766.html
docker gitlab迁移 备份 部署 搭建以及各种问题的更多相关文章
- Docker数据卷Volume实现文件共享、数据迁移备份(三)--技术流ken
前言 前面已经写了两篇关于docker的博文了,在工作中有关docker的基本操作已经基本讲解完了.相信现在大家已经能够熟练配置docker以及使用docker来创建镜像以及容器了.本篇博客将会讲解如 ...
- 把Gitlab迁移到Docker容器里
把Gitlab迁移到Docker容器里 Apr 9, 2015. | By: 任怀林 公司的gitlab一直是运行在ovm的虚拟机里的,版本还是6.7.5.版本有点老了,最近在研究docker,于是想 ...
- Docker Gitlab CI 部署 Spring Boot 项目
目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...
- 【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)
写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 服务器规划 IP 主机名 节点 操作 ...
- Centos7安装部署搭建gitlab平台、汉化
Centos7安装部署搭建gitlab平台.汉化 安装环境要求:内存不要小于4G,否则后期web界面可能会报错 一.准备工作 1.1 查看系统版本 首先查询系统版本,下载Gitlab的对应版本 [ro ...
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...
- docker+gitlab+gitlab-runner部署
环境 服务端:centos7 客户端:window 在centos7上部署docker+gitlab+gitlab-runner,win10利用ssh连接,开发人员只需提交代码,就可以进行项目文件上传 ...
- docker+gitlab的安装和迁移
docker+gitlab的安装 docker search gitlab docker pull docker.io/gitlab/gitlab-ce docker run --name=: -- ...
- Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图
Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图 转载自:原创 IT综合 作者:百联达 时间:2017-05-09 15:48:08 41 ...
随机推荐
- MySQL 启停过程了解一二
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 前言 你知道MySQL启停都做了些什么吗? 启动的时 ...
- OSSCore 开源解决方案介绍
基于.NetCore的积木化服务框架,主要将常规解决方案进行进一步的抽象下沉形成相关基础可选框架单元(在Framework 目录),并在此基础上实现常规系统模块(在Modules 目录),如用户管理, ...
- Apache DolphinScheduler 1.3.6 功能发布说明
参与人员 @chengshiwen.@hailin0.@wanghong1314.@ruanwenjun.@xxjingcd.@zhangguohao.@zhuangchong.@syb8535531 ...
- 我和Apache DolphinScheduler的缘分
关于 DolphinScheduler社区 Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache 孵化器,社区发 ...
- Python爬虫之xpath语法及案例使用
Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...
- 五,手写SpringMVC框架,过滤器的使用
8. 过滤器 8.1 编写字符过滤器 CharacterEncodingFilter 复制项目mymvc4,新建项目mymvc5 package com.hy.filter; import java. ...
- ruby 字符注音标签
<ruby/>标签下的文本可以注音,注音由一对<rt/>标签完成. <ruby> 汉<rt>han</rt> 字<rt>zi&l ...
- Java SE 16 新增特性
Java SE 16 新增特性 作者:Grey 原文地址:Java SE 16 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...
- mustache.js常见用法
一.mustache基于JS模板引擎,能较为快捷和简单得实现数据得渲染 用法: 1.CDN引入mustache.js,以下是4.0.1版本,有需要可以去github上查询其他版本的代码. (funct ...
- day25--Java集合08
Java集合08 15.HashTable 15.1HashTable的基本介绍 存放的元素是键值对:即K-V HashTable的键和值都不能为null HashTable的使用方法基本上和Hash ...
