把在一台群晖Docker中安装的Gogs迁移到另外一台群晖上,将以下3个比较重要的文件(夹)进行迁移即可:

  • mysql数据库
  • 代码仓库(gogs-repositories文件夹)
  • 用户数据文件(/gogs/data文件夹)

1 MySql数据库迁移

我用的是MariaDB10的MySql数据库,所以这里用MySql数据库来讲解。

1.1 导出数据

Windows中用ssh登录 旧的 群晖服务器,cd到mariaDB目录下:

cd /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/

群晖docker所在的目录 群晖docker存储库_群晖


输入以下命令连接数据库:

./mysql -u root -p password

其中root和password分别替换为你数据库的用户名和密码

输入以下命令切换到MySql数据库

use mysql

查看当前有的所有数据库:

show databases

找到gogs对应的数据库,并使用下面的命令进行打包:

mysqldump -uroot -p --all-databases; # 打包所有数据库
mysqldump -uroot -p dbname > dbname.sql; # 打包指定数据库

1.2 导入数据

Windows中用ssh登录 新的 群晖服务器,如前所述cd到mariaDB目录下:

使用如下命令将打包的sql文件导入当前数据库中:

source /path/dbname.sql

结束后可以用show databases查看是否将数据库正确导入。

2 代码仓库及用户数据文件迁移

这两个文件存放的是所有的git仓库及发布文件等数据,数据量会比较大,拷贝的时候确保有足够的空间。

首先使用如下命令使用有最高权限的root用户:

sudo -i

使用如下命令进入到docker中Gogs对应的文件夹下:

cd /volume1/@docker/volumes/一串字符/_data

该文件夹下有:

群晖docker所在的目录 群晖docker存储库_Gogs_02


我们需要拷贝的是以下两个文件夹下的所有数据并放到新的服务器中的对应位置:

_data/git/gogs-repositories/
_data/gogs/data/

3 配置新的服务器

3.1 系统中创建git用户

在群晖后台创建git账户并分配权限(我这里给了管理员权限)

群晖docker所在的目录 群晖docker存储库_Synology_03

3.2 安装Gogs

在新的服务器中安装Git并在Docker中安装Gogs

在配置也填入与旧服务器相同的配置参数,这样确保能正确连接:

群晖docker所在的目录 群晖docker存储库_Synology_04

3.3 配置Gogs

我们这里可以打开SSH连接(首先要在群晖后台开启SSH)。

进入到“_data/gogs/conf/”目录下,输入以下命令编辑Gogs的配置文件:

vi app.ini

我们做如下修改:

群晖docker所在的目录 群晖docker存储库_Synology_05


红框中的内容均为安装Gogs时配置页里的设置

修改以下几项,用于SSH连接:

SSH_PORT         = 10022
START_SSH_SERVER = true

这里要注意的是,SSH_PORT设置的端口号要与Gogs容器中SSH(22)映射的端口号保持一致!

可通过如下操作进行设置:

群晖docker所在的目录 群晖docker存储库_Gogs_06


群晖docker所在的目录 群晖docker存储库_群晖_07