Digital Ocean 设置后的应用程序文件

我们成功在 Digital Ocean 上安装了 Discourse,一切运行正常,但我们无论如何都找不到 Discourse 的实际文件在哪里。我们想测试一些修改并构建一些插件,但找不到任何文件。我们使用 FileZilla 登录到服务器,但无论如何都找不到 Discourse 应用程序文件,例如 discourse/app。我们进入了 var/discourse 文件夹,但什么都没有。然后进入 var/discourse/containers,也什么都没有。我们尝试通过 SSH 运行 .launcher 进入 app,在终端中可以看到我们的文件位于 var/www,但当我们登录服务器时,该目录并不存在。我们还尝试了 var/lib/docker/containers,同样什么都没有。Discourse 文件究竟位于哪里?谢谢。

这就是 Docker 的工作原理:实际文件位于 Docker 容器内部,因此使用 Filezilla 无法直接看到它们。

如果您想测试对 Discourse 的修改(例如插件和主题),在生产环境中是无法进行的。

关于主题,请参阅:Beginner's guide to using Discourse Themes

关于插件,请参阅:Developing Discourse Plugins - Part 1 - Create a basic plugin

除了使用 Docker,还有其他安装方法吗?我已经阅读了所有指南,但在不可见文件上进行开发确实有些困难。

这种范式与 20 世纪 90 年代的 PHP 应用程序截然不同,当时在生产服务器上通过 FTP 编辑文件是常态。

对 Discourse 行为的修改应作为独立项目存在,拥有自己的 Git 仓库,并利用现有的插件和主题 API。

因此,假设您想在主题编辑器中添加一个额外字段,让用户选择他们偏好的颜色。您可以按照 Developing Discourse Plugins - Part 1 - Create a basic plugin 的指南创建一个新的 Discourse 插件,然后将其托管在 GitHub 上,仓库命名为 discourse-favorite-color,并按照 Install plugins on a self-hosted site 的说明将其安装到您的实例中。

好的,明白了。需要习惯这种新的开发方式。只是好奇,每次添加插件时都需要运行 ./launcher rebuild app 吗?修改插件后也需要再次运行吗?

是的。

然而,这种情况应该很少发生,因为这是您的生产环境安装。

对于开发和测试目的,Developing Discourse Plugins - Part 1 - Create a basic plugin 的第一部分会指导您设置一个“开发环境”,您可以在其中进行修改,并通过刷新浏览器进行测试。

我确实是这样做的,不过你也可以通过 /admin/upgrade 网页界面进行升级。

此外,双容器安装方式允许你像这样进行升级:

./launcher bootstrap web_only
./launcher destroy web_only; ./launcher start web_only

这样你的网站停机时间仅相当于新服务器启动所需的时间(大约一分钟)。