Ruby: 部署到生产环境

如何在几分钟内将您的 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 上部署您的项目。

如果您想节省时间,或希望避免配置复杂的本地开发环境,建议您了解一下 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 公钥添加到个人资料,这样新建服务时会自动包含该密钥。

只需点击控制台右上角的头像,选择“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

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 错误,请检查格式。

在上述示例中,部署过程将会:

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

一切准备就绪。要将代码部署到 Stackhero,只需执行:

git push stackhero main

首次运行该命令时,系统会要求您确认 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)。您还可以找到关于环境变量等实用技巧。

请记住,如果在部署过程中遇到任何问题,故障排查 文档是帮助您高效解决问题、保持工作流顺畅的宝贵资源。