Gogs迁移

本文详细介绍了如何将Gogs代码仓库和数据库从旧服务器迁移到新服务器的步骤,包括备份与恢复Gogs仓库、MySQL数据库,设置新服务器上的MySQL容器,创建Gogs用户,安装并配置Gogs容器,以及解决迁移后可能出现的问题,如预接收钩子错误。此外,还提到了如何通过Gogs管理员账号刷新hooks来确保正常运作。
摘要由CSDN通过智能技术生成

1、备份gogs仓库,拷贝到新的服务器:

tar -zcvf gogs-repositories.tar.gz gogs-repositories

2、备份gogs数据库

sudo mysqldump -h localhost -u gogs -P 3306 --no-tablespaces -p gogs> /home/tgubuntu/gogs.sql

3、新服务器安装MySQL容器

# 创建docker网络,使用bridge
sudo docker network create -d bridge --subnet '172.21.0.1/24' --gateway '172.21.0.1' gogs-bridge
# 安装MySQL容器
docker run \
-d -it \
-p 8012:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
--privileged=true \
--network gogs-bridge \
--ip 172.21.0.2 \
--name mysql \
gogs_mysql

4、进入MySQL容器,创建账户,授权

sudo docker exec -it gogs_mysql bash
mysql -u root -p
use mysql;

# 创建gogs用户
CREATE USER 'gogs'@'%' IDENTIFIED BY '123456789';
# CREATE USER 'gogs'@'172.21.0.1' IDENTIFIED BY '123456789';
# 授权gogs用户可以操作gogs库下所有表
GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'%' WITH GRANT OPTION;
# GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'172.21.0.1' WITH GRANT OPTION;
# 授权远程三方工具连接MySQL
ALTER USER 'gogs'@'%' IDENTIFIED WITH mysql_native_password BY '123456789';
# ALTER USER 'gogs'@'172.21.0.1' IDENTIFIED WITH mysql_native_password BY '123456789';
# 刷新授权
FLUSH PRIVILEGES;
# 创建gogs库
CREATE DATABASE `gogs` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';

还原数据库

 use gogs
 source /home/git/gogs.sql

5、创建git用户运行Gogs

sudo adduser git
sudo su git

修改目录的所属权为git

sudo chown -R git:git /home/git/gogs 
sudo chown -R git:git /home/git/gogs-repositories 

6、创建Gogs容器

sudo docker run \
-itd \
-p 8013:22 \
-p 8014:3000 \
-v /home/git/gogs/data:/data/gogs/data \	# 挂载数据目录
-v /home/git/gogs/conf:/data/gogs/conf \	# 挂载配置
-v /home/git/gogs/log:/data/gogs/log \		# 挂载日志目录
-v /home/git/gogs-repositories:/data/git/gogs-repositories \	# 挂载代码仓库,重要,否则会出现仓库500
--privileged=true \
--network gogs-bridge \
--ip 172.21.0.3 \
--name=gogs \
gogs/gogs

7、浏览器运行安装程序,xxx.xxx.xx.xx:8014

在这里插入图片描述

8、备份的gogs-repositories文件上传到新服务器,替换gogs-repositories

9、重启gogs容器

sudo docker restart gogs

10、迁移后会出现不能push的现象,报错pre-receive找不到,使用Gogs管理员账号登录Gogs,刷新hooks

管理面板->控制面板->管理员操作->重新同步所有仓库的pre-receive、update和post-receive钩子->执行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值