Ruby: 部署到生产环境

如何在几分钟内将您的 Ruby 代码部署到生产环境

👋 欢迎来到 Stackhero 文档!

Stackhero 提供了一种即用型 Ruby 云 解决方案,具有众多优势,包括:

  • 通过简单的 git push 在几秒钟内 部署您的应用程序。
  • 使用您自己的域名,并享受 HTTPS 证书的自动配置以增强安全性。
  • 享受自动备份一键更新以及简单、透明和可预测的定价带来的安心。
  • 通过私有和专用的 VM获得最佳的性能和强大的安全性

节省时间简化您的生活:尝试 Stackhero 的 Ruby 云托管 解决方案只需 5 分钟

Stackhero Ruby 云托管服务 让您能够在几分钟内轻松将 Ruby 项目部署到生产环境,结合了强大的平台能力与直观的用户体验。

您将获得以下优势:

  • 只需一个简单的 git push 即可部署您的代码。
  • 使用您自己的自定义域名,自动管理 TLS 证书(HTTPS)。
  • 应用运行在专属的私有虚拟机(VM)上,确保最高级别的安全性与隐私。
  • 支持 HTTP/2、TLS 1.3(HTTPS)、WebSockets、GZIP 和 Brotli 压缩、ETag、TCP 和 UDP 端口访问等多项功能。

您只需要在本地电脑上安装 Git,即可开始在 Stackhero 上部署您的项目。

如果您希望节省时间,或不想配置复杂的本地开发环境,可以了解一下 Stackhero 的 Code-Hero

Code-Hero 是一款即开即用的开发平台,您可以直接通过浏览器在任意电脑、平板或手机上访问。它基于 VSCode 分支构建,预装并预配置了所有必需工具,让您无需任何环境配置即可立即开始编码。

<!-- ![在浏览器中直接运行的 Code-Hero 实例示例](/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 服务,点击“配置”,并将您的公钥粘贴到“SSH 公钥”区域。

<!-- ![Ruby 服务配置示例](/images/docs/ruby/040_deploy/rubyStackheroPublicKey.png) -->

小贴士:想节省未来的操作时间?您可以将 SSH 公钥添加到个人资料中,这样新建服务时会自动包含该密钥。

只需点击控制台右上角的头像,选择“个人资料”,然后添加您的 SSH 公钥即可。

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

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

git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git
<!-- ![Stackhero 控制台上的 Ruby Git remote 命令示例](/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”继续。

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

<!-- ![使用 `git push` 命令将 Ruby 代码部署到 Stackhero 的示例](/images/docs/ruby/040_deploy/rubyDeployGitPush.png) -->

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

恭喜,您的应用现已上线并投入生产环境。

部署遇到问题?

请务必查阅 故障排查 部分,快速获取解决方案。

您已经学会了如何通过 Stackhero 将 Ruby 代码部署到生产环境,整个流程既简单又高效。

如果您想进一步了解,建议阅读 高级部署用法 文档,涵盖了如部署不同 git 分支、指定标签或提交、管理多环境(如 staging 和 production)等主题。您还可以找到关于环境变量管理等实用技巧。

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