您好,
我在两台独立的 Azure 虚拟机(暂存和生产)上安装了 Discourse。有没有办法将暂存 Discourse 的更改自动部署到生产 Discourse?
UI 更改(主题)将在 Git 存储库中进行管理,因此将其发布到生产环境不成问题。主要问题在于将 Discourse 设置和配置的部署自动化到生产环境中。我们如何实现这一点?
您好,
我在两台独立的 Azure 虚拟机(暂存和生产)上安装了 Discourse。有没有办法将暂存 Discourse 的更改自动部署到生产 Discourse?
UI 更改(主题)将在 Git 存储库中进行管理,因此将其发布到生产环境不成问题。主要问题在于将 Discourse 设置和配置的部署自动化到生产环境中。我们如何实现这一点?
您可以将暂存容器推送到仓库,然后在生产环境中启动它。./launcher start-cmd app 将为您提供在 Docker 中启动容器所需的工具。
您还需要迁移数据库(可能使用 SKIP_POST_DEPLOYMENT_MIGRATIONS,并在新容器启动后再次迁移,以实现真正的零停机时间)并预编译资源。
一些设置存储在数据库中。其他设置可以通过环境变量设置,例如 DISCOURSE_SETTING_NAME(例如 DISCOURSE_TITLE='my great communiyt')。
一种更轻量级的策略是使用此:
请注意右上角的“仅显示已覆盖”
这将为您提供一份非默认设置的列表,您可以手动转移。
根据您的需求,这可能更简单。(话虽如此,在我运行了几年的实例上,我有 100 多个非默认设置。)
app.yml 可以部分复制。
当然,这不会转移类别等。
这可以通过独立的方法实现,还是我需要有两个容器(一个用于数据库,一个用于 Web)?
如果您不是业余爱好者,我推荐两个容器,因为您必须在启动新容器时关闭数据库,因此无法实现零停机。但单个容器也能正常工作。