这样更合理。我在将引导阶段分为两步时就是这样做的。第一步可以在隔离环境中运行(例如 CI 流水线),生成一个包含 Discourse 仓库、gem 和插件的基础镜像;第二步则需要在目标机器上运行(或至少能访问生产数据库),以执行数据库迁移并生成资源文件(这一步是在引导过程中完成的,而不是在启动容器时)。
是的,那将非常棒。我已经提出过该请求,但我不确定是否会实施以及何时实施。
要在完全独立的环境中实现这一点会比较困难,因为资源预编译任务需要访问数据库(例如用于自定义 CSS 等)。但如果仅依赖数据库的部分可以单独执行,而其他不依赖数据库的资源文件可以独立预编译,那将非常理想。不过,我不确定在技术上实现这一点的可行性如何。