目录

  • 1、前言
  • 2、gitea简介
  • 3、搭建gitea的yaml文件
  • 4、在Windows Docker中搭建gitea
  • 5、在gitee上先导入github库
  • 6、从gitee上将库导入到本地gitea
  • 7、设置本地仓库属性重新指向github并定时同步
  • 8、总结

1、前言

  在搭建Gitlab私服的过程中,与老同事进行了交流,一个老同事又向我推荐了gitea,这个东东最大的好处就是支持从远端的github上将库完整的拽到本地,以便快速访问,只是碍于github在国内访问糟糕的网速,所以真正需要备份完整github库还需要从gitee上绕一圈,下面我就将在Windows Docker环境中搭建的过程分享给大家。

2、gitea简介

  Gitea 的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。项目采用 Go 作为后端语言,只要生成一个可执行程序即可。

  它是跨平台的,支持 Linux、macOS 和 Windows 以及各种架构,除了 x86,amd64,还包括 ARM 和 PowerPC。

  本质上它还是一个Git的服务端,与Gitlab类似,但它还具有从Github端直接复制库的能力。我们主要就是利用这个能力。

  另外在Windows平台上有专门的Gitea的exe安装包,与windows完全兼容,大家也可以直接使用。这里就主要针对docker方式下如何搭建展开讨论,同时docker下的搭建方式也可以用于linux。具体用哪个就看个人喜好吧。

3、搭建gitea的yaml文件

  在gitea官方,推荐使用 docker-compose使用下面的YAML来启动gitea的容器:

version: "2"networks:gitea:external: falseservices:server:image: gitea/gitea:latestenvironment:- USER_UID=1000- USER_GID=1000- DB_TYPE=mysql- DB_HOST=db:3306- DB_NAME=gitea- DB_USER=gitea- DB_PASSWD=gitearestart: alwaysnetworks:- giteavolumes:- ./gitea:/data- /etc/timezone:/etc/timezone:ro- /etc/localtime:/etc/localtime:roports:- "3000:3000"- "222:22"depends_on:- dbdb:image: mysql:5.7restart: alwaysenvironment:- MYSQL_ROOT_PASSWORD=gitea- MYSQL_USER=gitea- MYSQL_PASSWORD=gitea- MYSQL_DATABASE=giteanetworks:- giteavolumes:- ./mysql:/var/lib/mysql

  这个文件内容很好理解,就是最终运行一个gitea + mysql的组合服务,作为一个gitea运行的单元,也就是使用mysql来作为gitea的后台数据库。相应的gitea还可以使用其他的数据库,也可以使用它默认的SQLet数据库,相关的YAML文件都可以在官网找到,这里就不再复制粘贴浪费篇幅了。

  这里要提醒各位的是,因为Windows Docker环境的特殊性,那么这里的YAML文件直接运行往往会因为Windows系统与Linux系统文件权限管理方式的不同而以失败告终。但在Windows Docker环境下可以用Volume的方式挂载卷来持久化数据。关于数据持久化及保护的问题,在前面几篇文章中已经讲过了,这里就不再啰嗦了。

  之所以粘贴这个YAML文件,主要是分析如果要在Windows Docker环境下启动一个gitea的容器,需要做些什么。从文件中可以看出,如果要使用Mysql来搭建gitea话需要先启动一个mysql 5.7版的容器,参数都已经清楚了,这个很容易翻译成docker run命令,需要注意的就是首先忽略文件中创建的容器间专用网络gitea,因为是本地搭建,这个没什么必要,但是如果是其它应用,还是老老实实建网络为好。另一个要注意的问题就是volumes部分的参数,就全部改用卷,同时gitea的两个只读的挂载也就忽略了,因为是Windows Docker环境,无法挂载。

4、在Windows Docker中搭建gitea

  首先按照前述的YAML文件中的参数,翻译为docker run命令,创建一个MySQL 5.7的容器:

docker volume create gitea_db
docker run --name gitea_mysql -d --privileged=true -p 3306:3306  -e "MYSQL_ROOT_PASSWORD=gitea" -e "MYSQL_USER=gitea" -e "MYSQL_PASSWORD=gitea" -e "MYSQL_DATABASE=gitea" -v gitea_db:/var/lib/mysql mysql:5.7

  上面这个命令中要注意的地方就是-p参数将端口暴露到了本机的3306口,这就要首先保证本机3306口没有被占用,当然这个也可以省略,因为在启动gitea容器时使用–link参数,就可以直接挂接mysql容器,gitea知道mysql的默认端口是3306,不用暴露到主机。这里暴露主要是为了方便有好事者可以从本机用mysql工具连接进去查看下里面的数据。

使用gitea通过码云完整克隆github源码库到本地备份(Windows Docker环境)相关推荐

  1. github 码云 获取_开源中国码云,岂止于中国版GitHub!

    [引言]2008年4月,三位美国开发者创办了后来风靡全球的GitHub,成为开源技术发展的一座里程碑.5年之后,中国最大的开源技术社区开源中国社区上线"码云"平台代码托管服务--G ...

  2. 使用码云加速下载github项目

    使用码云加速下载github项目 觉得有用的话,欢迎一起讨论相互学习~ 从codesheep中学到的思路,点关注不迷路,一键三联哦 众所周知,github上的项目下载都很慢,并且随着项目中文件数量变多 ...

  3. 仙侠手游源码《一剑问情》完整云服务器搭建过程-源码带GM后台+视频教程加文字教程

    仙侠手游源码<一剑问情>完整云服务器搭建过程-源码带GM后台+视频教程加文字教程 下载地址:https://www.ldmzy.com/467/ 本人测试用的云服务器2核4G内存 1M 带 ...

  4. NLP文本预处理:步骤、示例 | 附github源码

    点击关注我哦 一篇文章带你了解NLP文本预处理:步骤.示例 | 附github源码 注:关注[小白玩转Python]公众号,后台回复[NLP文本预处理],可以获取完整源码以及项目所需数据集. 文本数据 ...

  5. IDEA 快速搭建SpringBoot项目 提供GitHub源码地址

    一.环境: IDEA+SpringBoot+MySql+MyBatis+Thymeleaf GitHub源码地址: https://github.com/516516/springboottestde ...

  6. 微信小程序github源码大全下载

    微信小程序实例源码大全下载 微信小应用示例代码(phodal/weapp-quick) 源码链接:https://github.com/phodal/weapp-quick 微信小应用地图定位demo ...

  7. Java云电子病历系统源码,提供电子病历在线制作、管理和使用的一体化电子病历

    这是一套SaaS模式Java版云HIS系统的子系统云电子病历系统源码,本系统采用前后端分离模式开发和部署,支持电子病历四级. 文末获取源码联系! 本电子病历系统主要为医院住院部提供医疗记录依据,协助医 ...

  8. cloudreve win10 解析域名_Cloudreve 云盘直链获取源码

    Cloudreve 云盘直链获取源码 @虐ふ1999.版本 2 .支持库 spec .程序集 程序集1 .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行 调试输出 (获取Could ...

  9. github可视化_Cesium数据可视化-仓储调度系统可视化部分(附github源码)

    Cesium数据可视化-仓储调度系统可视化部分 目的 仓储调度系统需要一个可视化展示物资运输实况的界面,需要配合GPS设备发送的位置信息,实时绘制物资运输情况和仓储仓库.因此,使用Cesium可视化该 ...

最新文章

  1. IntelliJ IDEA 教程
  2. 数据库连接池和Tomcat连接池的配置问题
  3. 在vi里面实现字符串的批量替换
  4. 14.PTD与的基址
  5. 05.full_text match_bool_prefix match_phrase_prefix 查询
  6. 二级计算机vf里的sql,计算机等级考试二级VF考点:SQL语言
  7. jsp自定义标签(taglib)编写的原理和实现
  8. iOS解决表格中TextField,TextView编辑时,输入框被键盘遮挡的问题
  9. Swarm Mode服务管理
  10. Linux下的tar命令
  11. KALI利用MS17-010漏洞入侵
  12. kali破解压缩包密码
  13. 2020年机修钳工(中级)考试报名及机修钳工(中级)免费试题
  14. LTE(4G) - NR(5G) RSRP和SINR RSRQ RSSI LTE信号质量
  15. C++实现“23”抽签小游戏
  16. 程序员自学编程被腾讯拒却月入3w是一种怎样的体验?
  17. 深度学习之数据处理方法概述
  18. oracle中与归档相关的视图,Oracle OWI 等待事件历史视图及相关视图 - 一沙弥的世界...
  19. 嵌入式系统硬件组成-3.2
  20. C#项目:未找到引用错误解决方案

热门文章

  1. Android设备adb调试
  2. 去哪儿热门游记数据分析
  3. 什么是监督学习非监督学习,强化学习
  4. IDEA 中使用 maven 开发 SpringMVC 入门实例
  5. 中国万向控股副董事肖风谈区块链Token……
  6. 开发一个软件的主要流程
  7. PHP跨域处理 图片跨域 接口跨域 后端nginx的cors设置
  8. 基于共词分析的中国近代史实体关系图构建(毕业设计:数据处理)
  9. RS-485总线电平异常解决方案解析
  10. 那些年,腾讯、阿里、百度“搞死”的50多种产品清单!