# 进入容器命令行备份
./launcher enter app
# 在容器内执行备份命令
discourse backup
# 退出容器
exit
# 在宿主机上创建备份文件存放目录
mkdir -p /var/discourse/shared/standalone/backups/default
# 再次进入容器命令行
./launcher enter app
# 将备份文件从容器内拷贝到宿主机上的备份目录
cp 备份文件.tar.gz /var/discourse/shared/standalone/backups/default
# 在容器内启用恢复模式
discourse enable_restore
# 执行恢复命令,使用指定的备份文件
discourse restore /var/discourse/shared/standalone/backups/default/备份文件.tar.gz
# 重建应用
./launcher rebuild app
今晚将discourse从racknerd的机器迁移到了berohost上,对于迁移操作再补充一下。
首先在老机器上执行以下命令
# 进入discourse文件夹
cd /var/discourse
# 进入discourse容器
./launcher enter app
# 在容器内执行备份命令
discourse backup
# 退出容器
exit
接着在新机器上执行
# 从 GitHub 克隆 Discourse Docker 仓库到 /var/discourse 目录
git clone https://github.com/discourse/discourse_docker.git /var/discourse
# 进入discourse目录
cd /var/discourse
# 将 containers 目录的权限设置为只有所有者可读、可写、可执行(700)
chmod 700 containers
# 将老机器上文件`/var/discourse/containers/app.yml`复制到
# 新机器上的`/var/discourse/containers/`文件夹下。
# 将DNS解析记录的IP更改为新机器的ip。
# 反向代理服务器反代discourse服务的7777端口,以实现域名访问discourse服务。
# 我使用的是反向代理服务器caddy。于是我的配置(`/etc/caddy/Caddyfile`)如下:
discourse.gujiakai.top {
reverse_proxy localhost:7777
}
# 接着在新机器的`/var/discourse/`文件夹下执行以下命令以重建应用。
./launcher rebuild app
# 执行完毕后,这时访问discourse论坛的域名是一个崭新的论坛。
# 在新机器上执行以下命令以新建备份文件夹。
mkdir -p /var/discourse/shared/standalone/backups/default
# 将老机器上的备份文件(`/var/discourse/shared/standalone/backups/default/xxx.tar.gz`)
# 上传至新机器上的新创建文件夹的位置(`/var/discourse/shared/standalone/backups/default/`)。
# 在新机器上的`/var/discourse/`文件夹下执行以下命令
# 进入discourse app容器
./launcher enter app
# 启动恢复模式
discourse enable_restore
# 执行恢复命令
discourse restore xxx.tar.gz
# 接着运行exit退出discourse容器。
# 使用以下命令重建discourse app,执行完,discourse论坛就恢复完毕了。
./launcher rebuild app