Ruby: 部署到生产环境

使用 Stackhero 在几分钟内将 Ruby 代码部署到生产环境

👋 欢迎来到 Stackhero 文档!

Stackhero 提供即开即用的 Ruby cloud 解决方案,带来多项优势,包括:

  • 只需一个简单的 git push,即可在几秒钟内部署您的应用。
  • 使用您自己的域名,并享受自动配置HTTPS证书带来的更高安全性。
  • 享受自动备份一键更新,以及简单、透明且可预测的定价,让您无后顾之忧。
  • 依托专属私有基础设施,获得卓越的性能和强大的安全性

节省时间简化您的工作流程:只需5分钟即可体验 Stackhero 的 Ruby cloud hosting 解决方案!

Stackhero 的 Ruby 云端托管服务 让您可以在几分钟内将 Ruby 项目上线。您将获得一个强大且可靠的平台,专为简化部署流程而设计,让您专注于应用开发,无需为基础设施操心。

您将获得以下优势:

  • 只需简单执行 git push 即可部署代码。
  • 支持自定义域名,并自动管理 TLS 证书(HTTPS)。
  • 应用运行在专属、隔离的基础设施上,保障安全与隐私。
  • 支持 HTTP/2、TLS 1.3(HTTPS)、WebSockets、GZIP 和 Brotli 压缩、ETag 支持、TCP 和 UDP 端口访问等功能。

您只需在电脑上安装 Git 即可开始。

如果您想节省时间,或希望避免配置本地开发环境,可以考虑使用 Stackhero 的 Code-Hero

Code-Hero 是一个基于浏览器的开发环境,适用于任何设备。它基于 VSCode 分支构建,预装并预配置了主要开发工具,让您无需任何设置即可立即开始编码。

<!-- ![Example of a Code-Hero instance running directly on the browser](/images/docs/ruby/040_deploy/rubyInCodeHero.png) -->

将 Ruby 应用部署到 Stackhero 非常直接。以下是整体流程,每一步将在下文详细说明:

  1. 在 Stackhero 上创建 Ruby 服务。
  2. 将您的 SSH 公钥添加到 Ruby 服务配置中。
  3. 在开发环境中配置 git push 命令。
  4. 为项目添加 Makefile。
  5. 将代码部署到生产环境。

如果您在部署过程中遇到问题,可以参考 故障排查 文档,快速找到解决方案,保障流程顺畅。

如果您还没有创建 Stackhero for Ruby 服务,可以在 Stackhero 控制台几分钟内完成。

Ruby 服务启动后,下一步是添加您的 SSH 公钥。您可以通过以下命令查看公钥:

cat ~/.ssh/id_*.pub

还没有 SSH 密钥?

可以通过以下命令生成:

ssh-keygen -t ed25519

要添加 SSH 密钥,请进入 Stackhero 控制台,选择您的 Ruby 服务,点击“Configure”,并将公钥粘贴到“SSH public keys”区域。

<!-- ![Example of a Ruby service configuration](/images/docs/ruby/040_deploy/rubyStackheroPublicKey.png) -->

小贴士:为节省后续操作时间,您可以将 SSH 公钥添加到 Stackhero 个人资料。新建服务时会自动包含该密钥。

点击控制台右上角的头像,选择“Your profile”,然后添加您的 SSH 公钥。

部署到 Stackhero 只需使用 Git CLI 和 git push 命令,无需额外工具。

您可以在 Stackhero 控制台服务主页复制 git remote 命令。通常格式如下:

git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git
<!-- ![Ruby Git remote command on Stackhero's dashboard](/images/docs/ruby/040_deploy/rubyStackheroGitRemote.png) -->

为了让 Stackhero 知道如何运行您的应用,请在项目根目录添加一个 Makefile 文件。该文件定义了 Stackhero 部署时要执行的命令。

如果您不熟悉 Makefile 或 make 命令,下面的步骤将指导您创建一个可用的 Makefile。

创建一个内容如下的 Makefile

run:
	rake assets:precompile
	rake db:migrate RAILS_ENV=production
	RAILS_ENV=production bundle exec puma -C config/puma.rb

该 Makefile 的作用:

  1. run 规则是必需的。Stackhero 部署时会查找此规则作为入口。请保持该规则名称不变。
  2. 示例中使用了 rakebundle,您可根据实际应用调整命令。
  3. 每行命令必须以 Tab 字符开头,不能用空格。如果出现 *** missing separator 错误,请检查是否使用了 Tab。

上述示例部署流程将:

  1. 预编译 JavaScript 和 CSS 等静态资源到 public/assets 目录。
  2. 执行数据库迁移。
  3. 启动 Puma 服务器以对外提供服务。

现在您已准备就绪,可以执行:

git push stackhero main

首次部署时,Git 会要求您确认 SSH 密钥指纹。请输入 "yes" 继续。

稍等片刻,您的应用就会上线。

<!-- ![Example of deploying Ruby code to Stackhero using the `git push` command](/images/docs/ruby/040_deploy/rubyDeployGitPush.png) -->

您可以通过 Stackhero 控制台显示的网址访问已部署的应用,地址通常为 https://<XXXXXX>.stackhero-network.com

您的应用现已上线并运行在生产环境。

如果部署过程中遇到问题,故障排查 部分涵盖了常见问题及解决方法。

本文介绍了如何通过 Stackhero 将 Ruby 代码部署到生产环境,整个流程既强大又简便。

如需了解更高级的用法,例如部署不同的 Git 分支、标签或提交,以及管理 staging 和 production 等多环境,请参阅 高级部署用法 文档。您还可以找到环境变量管理及其他实用功能的相关建议。

如有任何疑问或遇到问题,故障排查 文档始终可供参考,帮助您保持高效顺畅的部署流程。