stevejr
(Steve)
1
您好,
有人能就如何构建一个内置了多个插件的 Discourse Docker 镜像(而不是通过用户界面安装)提供建议吗?
背景是——我们希望使用最新的 Discourse 构建版本,即 discourse:stable,根据我在安装指南和其他文档中所读到的,我们可以将其作为基础镜像放在我们自己的 Dockerfile 中,然后执行类似以下的操作:
RUN cd /var/www/discourse/plugins && \
git clone https://github.com/discourse/discourse-chat-integration.git
这将把 discourse-chat-integration 插件添加到构建中。然后在运行时,我们可以传入所有必需的环境变量,例如 DISCOURSE_HOSTNAME、DISCOURSE_SMTP_DOMAIN、DISCOURSE_DB_HOST 等,而不是将它们硬编码在 app.yml 文件中。
如果有人能就以上内容提供建议,将不胜感激。
谢谢。
pfaffman
(Jay Pfaffman)
2
你不能从 UI 安装插件。你从 YML 文件中安装它们。如果你使用的是你自己没有用启动器(launcher)构建的、尚不受支持的容器,那么你会做你建议的类似的事情。
但那个插件在核心(core)中(但可能还没有在稳定版中?)。
它们实际上并没有硬编码在 YML 文件中。YML 文件用于构建和启动容器。你可以构建它,然后以你想要的任何方式启动它。你可以使用 ./launcher start-cmd container-name(或者类似的东西,你可以查看启动器以查看我是否弄错了)。
所以我想你想要做的是继续使用启动器,添加插件,对容器运行 ./launcher bootstrap app,然后以你想要的方式启动它。你甚至可以将其推送到一个仓库,这样你就可以从其他机器启动它。
是的,我想可能已经没有稳定版了,至少也不会持续太久了。请参阅 RFC: A new versioning strategy for Discourse