如果这些说明能告诉我“嘿,笨蛋!不要从 shell 运行 git clone 命令。只需按照示例将命令添加到 app.yml 文件中,确保缩进正确,保存它,然后运行 rebuild 命令。”,那对我来说会很有帮助。
这些说明也可以更清楚地说明何时需要 -E -u 以及何时不需要。
在我成功之前,我还做了一些其他愚蠢的事情。现在我再看这些说明,它们几乎完美地符合逻辑。但是,如果这些说明是考虑到像我这样的新手会尝试遵循它们而编写的,我可能会避免掉入几个陷阱。
如果这些说明能告诉我“嘿,笨蛋!不要从 shell 运行 git clone 命令。只需按照示例将命令添加到 app.yml 文件中,确保缩进正确,保存它,然后运行 rebuild 命令。”,那对我来说会很有帮助。
这些说明也可以更清楚地说明何时需要 -E -u 以及何时不需要。
在我成功之前,我还做了一些其他愚蠢的事情。现在我再看这些说明,它们几乎完美地符合逻辑。但是,如果这些说明是考虑到像我这样的新手会尝试遵循它们而编写的,我可能会避免掉入几个陷阱。
我不是专家,所以请耐心点……
昨天我安装了 Discourse,现在我试图安装一个插件。
我需要运行:
./launcher rebuild app
还是可以只运行:
./launcher destroy app
然后
./launcher start app
?
运行 ./launcher rebuild app 需要很长时间,而且我的网站会停止工作或变得非常慢。
重建是安装插件的唯一方法。先销毁再开始,只使用旧的配置。
但不要在重建之前销毁任何东西。因为如果重建失败,你可以用start命令将旧的上线。
你已经设置了一个容器,对吧?那么那个论坛将会离线,因为第一次重建会停止你的容器。是的,重建确实需要很长时间。
有两个容器设置,然后离线时间为几分钟。但不要在你对这些基本操作感到熟悉之前切换到它们。
您好,
这是安装插件的唯一方法吗?
因为我部署在公司的内网环境中,外部网络访问很不稳定,执行 ./launcher rebuild app 时经常失败。有什么办法可以离线下载插件然后部署吗?
是的,添加或删除插件时必须重新构建。
另一方面,主题组件则不需要这样做,因为它们只影响前端。因此,如果可能的话,请考虑该选项。
谢谢你的回复。
因为我刚开始使用discourse,我还是有一个问题想请教。
比如,我更新了app.yml并添加了插件,但似乎在重建时,即使不是第一次部署,之前拉取并安装的内容仍会被再次下载?
比如ruby或已安装的插件。
Docker 镜像应该被缓存,但由于是新容器,某些克隆可能会再次发生。
但是否有可能复制整个仓库并提供本地地址?
是的。你可以试试,但这会使升级过程复杂化。
如果在重建过程中断开连接,可以使用 tmux 或 screen。
可以在其他地方构建容器,将其推送到仓库,然后在您的网站上启动它(您还需要迁移数据库和预编译资源)。
好的,谢谢,我明白了。
我将插件保存在本地 GitLab 中,并在重新构建时本地拉取,这样更方便。
好的,我会试试
可能是缩进错误,我从教程里一字不差地复制了它,包括空格,而且它运行得很好。
我怀疑有办法,它之所以快速并且是为论坛设计的,是因为它是预先构建的,不像普通网站那样由系统即时渲染(除非您有缓存),但普通网站的缓存无法提供动态内容。
现在 solved 也已合并到核心。
感谢您为我节省了 .\launcher rebuild app 的精力
啊,观察得好——如果有人能用另一个合适的例子替换它,那就太有帮助了。我对 Meta 不算活跃,也不知道哪些插件已被添加到核心。
(顺便说一句,我目前在 Meta 上的界面似乎也一团糟,用 iPad 和 Arc 浏览器发帖/编辑很困难——不知道是怎么回事)
所以,如果其他人能用一个合适的例子更新 OP,也将不胜感激。
3 个帖子已拆分为新主题:重建 Discourse 时应注意的事项
如果这不是元(meta)的 bug,我会建议在 Site feedback 或 UX 中创建一个主题。我知道自托管的类别通常需要 bug 报告提供 Discourse 团队无法访问的详细信息。