windows->linux

之前gogs放在windows server2016中,需要迁移至linux docker中。

首先拉取gogs镜像

docker pull gogs/gogs

然后挂载卷,运行docker容器。

docker run -p : --name gogs -v /mnt/gogs/data/:/data/gogs/data -v /mnt/gogs/cert/:/app/gogs/cert -v /mnt/gogs/public/:/app/gogs/public -v /mnt/gogs/scripts/:/app/gogs/scripts -v /mnt/gogs-repositories:/app/gogs/repositories -v /mnt/gogs/custom/conf/:/data/gogs/conf -d gogs/gogs

其中/mnt/gogs目录是原windows server中放置gogs的磁盘目录,换为linux后挂载到了/mnt下。可替换为自己的gogs目录所在路径

挂载进docker 的目录只需要data public scripts custom/conf 和 仓库所在目录repositories,如果有ssl证书也需要挂载进去。

启动完毕后进入docker容器中修改配置文件

docker exec -it gogs /bin/bash
vi /data/gogs/conf/app.ini

批量替换所有仓库的配置路径

定位到仓库所在根目录。

find 查找update pre-receive和post-receive文件, sed替换掉gogs可执行程序和配置文件路径,替换格式为s#old#new#g,   old 和new是原字符串和新字符串,有特殊符号需要加\进行取消转义

替换gogs所在路径

find . -type f \( -name "update" -o -name "pre-receive" -o -name "post-receive" \) -exec sed -i s#D:\/gogs\/gogs\/gogs.exe#\/app\/gogs\/gogs#g {} \;

替换配置文件所在路径

find . -type f \( -name "update" -o -name "pre-receive" -o -name "post-receive" \) -exec sed -i s#D:\/gogs\/gogs\/custom\/conf\/app.ini#\\/data\/gogs\/conf\/app.ini#g {} \;

其中 D:\/gogs\/gogs\/gogs.exe 是gogs可执行程序在源本windows中的路径,/都加了\来取消转义。 即D:/gogs/gogs/gogs.exe

\/app\/gogs\/gogs 是gogs在docker目录中的路径,即 /app/gogs/gogs

修改完毕后执行./gogs web启动即可,然后就可以关掉终端接着访问gogs了。无缝迁移,完美。

PS: 从一台windows服务器迁移到另一台windows服务器也大同小异,

  1. 备份gogs目录和仓库目录,备份还原gogs数据库
  2. 修改配置文件中的各种目录路径
  3. 修改每个仓库中hooks目录下的update pre-receive和post-receive文件中关于gogs路径和配置文件路径
  4. 重启gogs服务

gogs迁移的更多相关文章

  1. gogs迁移至gitlab

    一.先来聊一聊迁移的思路,不管是gogs迁移至gitlab,还是gitlab迁移至gogs,亦或gitlab迁移至gitlab,手动迁移的步骤都是如下图所示(在gitlab上新建一个空项目就会有这样的 ...

  2. centos 6.5 gogs迁移外部仓库报错

    安装gogs git软件后,使用迁移外部仓库功能,提示“你没有获得导入本地仓库的权限”,发现是因为使用的ssh的链接进行导入 目前gogs咱不支持,随后使用github的https链接导入,依然报错 ...

  3. Centos7下gogs数据配置迁移

    工作需要把测试版的gogs迁移到正式版gogs,顺便记下笔记防止以后需要忘记了 环境: centos7测试版gogs:192.168.1.63 centos7正式版gogs:192.168.0.100 ...

  4. gogs配置及迁移

    工作需要迁移gogs,粗略记下笔记 操作系统:CentOS Linux release 7.4.1708 (Core) 防火墙:关闭状态,如有需要开启默认的3000端口 一.配置 首先安装git [r ...

  5. ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成

    为什么不用gitlab? 没有采用gitlab,因为gitlab比较吃配置,至少得2核4G的配置.采用go语言开发的gogs来代替,搭建方便(不到10分钟就能安装完成),资源消耗低,功能也比较强大,也 ...

  6. Ubuntu安装Gogs服务

    花了半天的时间把阿里云的centos 换成了ubuntu 14.04 lts ,原因是因为我想安装个gogs git服务,但是centos的glibc版本太低,折腾了半天没有成功. 迁移Ghost数据 ...

  7. 用gogs搭建git服务器

    Gogs 是一款极易搭建的自助 Git 服务. Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 G ...

  8. Gogs配置(本地安装篇-Debian)

    知识储备: 用过MySQL等 了解Linux最基本的操作 git常用操作 关于ssh 本文参考:linux上安装gogs搭建个人仓库 下载 https://github.com/gogs/gogs/r ...

  9. Gogs官方帮助文档

    环境要求 数据库(选择以下一项): MySQL:版本 >= 5.7 PostgreSQL MSSQL TiDB(实验性支持,使用 MySQL 协议连接) 或者 什么都不安装 直接使用 SQLit ...

随机推荐

  1. C#程序运行计时

    var stp = new System.Diagnostics.Stopwatch(); stp.Start();//计时启动 ..........程序代码........... stp.Stop( ...

  2. linux下go的动态链接库的使用

    转自:http://blog.csdn.net/xtxy/article/details/21328143 在使用lua进行服务器端游戏逻辑开发时,发现了LUA的各种不方便的地方,不能编译检查,不能断 ...

  3. TS学习之基础类型

    1.布尔值 let isDone:boolean = false 2.数字(支持二,八,十,十六进制) let width:number = 20 3.字符串 let name:string = &q ...

  4. Centos开启telnet/ssh/ftp/sftp服务

    Telnet 开启telnet服务步骤: 1.   查看CentOS/Telnet_server版本:#cat /etc/issue,   #rpm -qa | grep telnet 2.   安装 ...

  5. Mac搭建nginx+rtmp服务器

    nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘. 一.安装Homebrow 已经安装了brow的可以直接跳过这 ...

  6. nop前端分页实现思路及步骤

    注:nop本身已经有啦可以实现分页的类,所以我们直接去使用就可以啦 . (编程部分)步骤如下: 第一步,针对Model操作,在需要使用分页的界面Model中将分页类作为该Model类的成员,并在Mod ...

  7. Ajax的包装

    /** * Created by Administrator on 2016/12/27. *//** * 创建XMLHttpRequest对象 * @param _method 请求方式: post ...

  8. Centos6.5安装JDK8教程(一)

    [原] 转载请注明原文地址, 保持对知识基本尊重,谢谢!   Win7宿主系统 VmWareWorkstation 11应用下的 Centos6.5系统.   /******************* ...

  9. Math(2)

    Math(2) public static void main(String[] args) { System.out.println(Math.floor(-32.8)); //常数 System. ...

  10. CentOS 7 rsync+inotify实现实时同步

    测试环境如下: inotify-slave IP : 172.16.0.222 inotify-master IP : 172.16.0.233 对两台机的要求: 安装依赖包gcc: yum inst ...