(过时)Discourse开发环境设置指南 - GitHub Codespace


使用 GitHub Codespaces 进行开发

GitHub Codespace 是一个很好的开发选项。它很棒,因为它托管在云端,我可以轻松确保在此处进行开发的每个人都拥有相同的环境,无需处理本地 docker 安装,可以轻松地将我的本地开发实例公开可用,而且使用新技术也很有趣。

我目前正在重新学习开发,并决定在学习 Discourse 开发的同时学习 GitHub Codespaces,因此我为任何希望在 GitHub Codespace 中开发 Discourse 而不是设置本地环境的人创建了本指南。

在我自己尝试在 GitHub Codespace 中运行 Discourse 时遇到了一系列问题后,我决定编写本指南:

本指南将假设您一无所知,因此我们不会遗漏任何一个步骤即可让您开始工作。我怀疑此过程的某些部分可以在核心存储库级别针对 GitHub Codespace 配置进行改进,或者至少由于我缺乏理解。请随时指出这些问题。

Fork Discourse 存储库

  1. 导航到 https://github.com/discourse/discourse

  2. 点击页面右上角的 Fork 按钮,然后在下一个页面上点击绿色的 Create fork 按钮。

  3. 片刻之后,您将被带到 discourse/discourse 存储库的新 fork:

设置您的 GitHub Codespace

  1. 点击绿色的 <> Code 按钮

  2. 切换到 Codespaces 选项卡,然后点击绿色的 Create codoespace on main 按钮。

  3. 您将被带到一个新窗口,GitHub 将在此开始创建您的 codespace。这应该需要 1-3 分钟:
    chrome_LYoRTOWojo

  4. 几分钟后,您将看到您的 GitHub Codespace(这只是浏览器中的 VS Code):

设置您的 Codespace 环境

在您开始运行之前,需要对您的 codespace 环境进行一些配置。

  1. 通过在 Windows/Linux 上按 Ctrl + Shift + backtick,或在 Mac 上按 Cmd + Shift + backtick 来创建一个新的 bash shell。您的 shell 应该会从 /var/www/discourse 目录开始。

  2. 导航到 discourse 目录:

cd workspace/discourse

  1. 从项目 Gemfile 安装所有内容
bundle install --gemfile ./Gemfile

命令有点长,但您会看到类似这样的内容:

  1. 在 development.rb 中添加一个新的 config.hosts
    1. 从您当前所在的目录(/var/www/discourse/workspace/discourse)打开文件 config/environments/development.rb
    2. 找到行 config.hosts << /\A(([a-z0-9-]+)\.)*localhost(\:\d+)?\Z/ 并在其下方创建新行,然后保存文件:
config.hosts << /^(.*)\.app\.github\.dev$/

您的文件末尾应该看起来像这样(请注意我截图中的第 102 行):

  1. 回到终端,运行 bundle exec rake admin:create 来创建您的第一个管理员帐户。该命令会要求您选择一个电子邮件和密码(密码必须至少 10 个字符长)

启动您的 引擎 服务器

构建和启动服务器将需要 1-2 分钟。此时,您应该拥有运行和访问应用程序所需的一切。

  1. 在您所在的同一个终端中,运行以下命令来启动您的服务器:
bin/ember-cli -u

  1. 将控制台中的 Terminal 选项卡切换到 PORTS 选项卡:

  2. 使用 Ctrl + click(适用于 Windows/Linux)或 Cmd + click(适用于 Mac)点击端口 4200 的 Forwarded Address,您将看到您的开发环境!

希望这能帮助其他人开始使用 GitHub Codespaces! :tada:

11 个赞

太好了,这是轻装出行时的好选择。

2 个赞

就我而言,我真的不想在 Windows 和 Docker 上进行开发,但也不想在家切换到 Unix 环境(尽管我在工作中会使用)。

我只是喜欢所有东西都在我的 GitHub 仓库里的这个想法。

3 个赞

我认为本指南需要更新。运行第 5 步时它不起作用,因为数据库尚未创建。

1 个赞

我通过运行以下命令解决了问题:

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)

然后

bin/rails db:create
bin/rails db:migrate
RAILS_ENV=test bin/rails db:create db:migrate

接着运行

bin/ember-cli -u

然后在另一个终端窗口中运行

bin/rails admin:create
1 个赞

@jordan-violet 我猜这是#unsupported-install?我找不到我的app.yml,所以无法安装插件。

要安装插件,您可以按照 Install plugins in your non-Docker development environment 中的步骤进行操作。

3 个赞

您从插件文件夹链接到插件代码的文件夹

2 个赞

@jordan-violet 感谢您创建了这份包含先前所有必要变通方法的手册 :pray:

很高兴地告诉大家,我们已经合并了对 devcontainer/codespaces 配置的大量更改,这将使在无需分叉或手动配置任何内容的情况下即可轻松上手。

这是官方指南:

我将在帖子顶部添加一条说明,引导大家参考官方指南 :writing_hand:

6 个赞