pauln
(Paul Nate)
1
大家好,我在更新时遇到了一个问题,提示如下:
如果您希望继续使用当前不受支持的存储驱动程序,
请阅读启动器的源代码,并找出如何绕过此检查。
root@sendy:/var/docker/discourse# git pull
已经是最新版本。
root@****:/var/docker/discourse# ./launcher rebuild app
您的 Docker 安装未使用受支持的存储驱动程序。如果我们继续。
推荐使用的存储驱动程序是 overlay2,不过 zfs 和 aufs 也可能正常工作。
其他存储驱动程序已知存在一些问题。
您可以通过运行“docker info”并查看输出结果来了解您正在使用的文件系统。
如果您希望继续使用当前不受支持的存储驱动程序,
请阅读启动器的源代码,并找出如何绕过此检查。
root@****:/var/docker/discourse# docker info
容器:5
镜像:74
存储驱动程序:devicemapper
池名称:docker-8:0-1970634-pool
池块大小:65.54 kB
数据文件:/var/lib/docker/devicemapper/devicemapper/data
元数据文件:/var/lib/docker/devicemapper/devicemapper/metadata
已用数据空间:34.15 GB
总数据空间:107.4 GB
已用元数据空间:41.37 MB
总元数据空间:2.147 GB
库版本:1.02.82-git (2013-10-04)
执行驱动程序:native-0.2
内核版本:5.6.14-x86_64-linode135
操作系统:Debian GNU/Linux
neounix
(Dark Matter)
2
你好 @pauln
如果你的主机仅运行 Docker 以支持 Discourse,且你的 Linux 内核支持 OverlayFS,那么我建议你(谨慎地)重新配置 Docker,使其使用 overlay2 存储驱动。
希望这能帮到你。
pauln
(Paul Nate)
5
您能告诉我如何操作吗?
我运行在 Linode (Debian 7.5) 上。
您能告诉我如何重新配置 Docker 吗?
neounix
(Dark Matter)
10
@pauln
嘿,我已经启动并清醒了。
你想做什么?
你是想升级到更新版本的 Debian,还是希望我先看看能否让你的 7.5 版本恢复运行?
如果你希望我先尝试让 7.5 版本恢复运行,我需要了解以下信息:
问题是,当你更改 Docker 配置文件中的存储驱动时,所有现有的容器将无法访问。因此,我们需要执行以下步骤:
- 确保你已拥有完整的 Discourse 备份(始终如此)
- 关闭 Docker。
- 编辑 Docker 配置文件以更改存储驱动。
- 重启 Docker。
- 重新构建 Discourse。
如果你的 Debian 内核支持 OverlayFS,整个过程将顺利进行。如果不支持,操作会失败,但不会造成任何损害,我们可以回退到 devicemapper。
请告知你希望如何进行。
谢谢。
pauln
(Paul Nate)
11
好的,我想先让它运行在 7.5 版本上。Docker 目前只运行 Discourse。
谢谢,我们开始吧 
neounix
(Dark Matter)
12
好的……我就是这么想的:slight_smile:
实际上,步骤在此处有详细说明:
快速浏览一下,并告诉我你是否对所述步骤没有问题,或者是否有任何疑问。
谢谢。
pauln
(Paul Nate)
13
好的,让我试试这些步骤,然后回复你?我之前尝试过类似的方法,但没有成功。我会随时向你更新进展。
neounix
(Dark Matter)
14
如果您的 Linux 内核不支持 OverlayFS,操作将会失败。
别担心。
您可以随时回退回去;)
如果操作没有失败,那我就可以回去继续睡觉了:slight_smile:
neounix
(Dark Matter)
16
Docker 无法重启。
换句话说,Docker 说明中的第 5 步(见上文)将会失败:
5. 启动 Docker。
$ sudo systemctl start docker
这可能会失败,也可能会成功……
(您可能需要使用其他命令代替 systemctl,但概念相同)
neounix
(Dark Matter)
18
祝你玩得开心。
我不打算喝咖啡,也不指望奇迹发生,更不指望你的旧版 Linux 内核(出于某种奇怪的原因)真的支持 OverlayFS。
老实说,我快速“谷歌”了一下,结果并不乐观,但我还是尽量保持乐观。

pauln
(Paul Nate)
19
没有成功。
我该如何将论坛迁移到新的 VPS,同时不丢失任何用户数据?
Stephen
(Stephen)
20
下载您的 app.yml 和最新的备份文件。
您的 app.yml 通常位于 /var/discourse/containers。
备份文件位于 /var/discourse/shared/CONTAINERNAME/backups。
如果您的 Discourse 站点无法访问,仍可通过 SFTP 或 SCP 下载这些文件。
neounix
(Dark Matter)
21
嗨 @pauln
很遗憾听到这个消息。我原本就怀疑你旧的内核不支持 OverlayFS,但尝试一下并在过程中学习通常也无妨。
在新环境中,你是想继续用 Debian,还是改用 Ubuntu?
我自己用 Ubuntu“已经很久了”,而且它也是 Discourse 官方支持的系统,所以这是我的推荐。当然,选择权在你。Debian 也很棒 
neounix
(Dark Matter)
22
嘿 @pauln
有一大群人可以帮你搭建新的 VPS,从头安装 Discourse 并恢复你的站点;所以我打算回去睡觉了。
很高兴与你合作。最后,这是我的建议:
- 启动一台新的 Linode Ubuntu VPS,因为你已经是 Linode 用户了(顺便说一句,我也是)。
- 从头安装 Discourse(文档很完善)
- 从备份恢复 Discourse(文档很完善)
有很多才华横溢的人可以在这段旅程中指导你,所以我现在先下线了。
祝好。
neounix
(Dark Matter)
23
早上好(我的时间)@pauln
今天早上我帮你查了一下,如果你由于某种原因暂时不想更换新的 VPS,可以尝试相同的方法;不过将 overlay2 换成 aufs 试试。
根据 Discourse 的启动脚本:
# 2. running an approved storage driver?
if ! $docker_path info 2> /dev/null | egrep -q 'Storage Driver: (aufs|zfs|overlay2)$'; then
这意味着,由于某些旧版本的 Debian 支持 aufs,而且从启动脚本来看 Discourse 似乎也支持 aufs,你可以尝试一下。
不过,最好还是升级到新的 Linux 发行版和内核,因为 Debian 7.5 早在两年多前就已停止支持(EOL),只要有机会,最好尽快脱离已停止支持的代码。我肯定会建议你走这条路,并切换到 overlay2 存储驱动(强烈推荐)。当然,选择权在你,如果你想为了好玩试试 aufs,那就尽管去试。学习新东西总是既有趣又富有成效的。
参考:
希望这能帮到你。
测试环境说明:
@pauln
为了帮你,我刚刚用一台全新的 Linode Ubuntu VPS 安装了 Docker,并将存储驱动更改为 aufs:
# docker info | grep aufs
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
然后我按照标准的 Docker 安装说明操作:
https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
结果 Discourse 在 aufs 存储驱动上顺利安装,没有任何问题。
所以,如果你愿意,可以在你的 Debian 7.5 VPS 上试试这个方法,当作学习和娱乐。
当然,无论是官方还是非官方的建议,都希望你迁移到一台新的、受支持的 VPS,正如之前提到的。请随时回来告诉我们你的决定和进展。
我刚刚在 launcher 中注释掉了代码块。有时你必须冒险
!