Ruby: 發佈至生產環境

如何在數分鐘內將您的 Ruby 程式碼部署到生產環境

👋 歡迎來到 Stackhero 文檔!

Stackhero 提供一個即用型的 Ruby cloud 解決方案,帶來多種好處,包括:

  • 只需一個簡單的 git push,即可在幾秒鐘內 部署您的應用程式。
  • 使用您自己的域名,並享受 HTTPS 證書的自動配置以增強安全性。
  • 享受自動備份一鍵更新,以及簡單、透明和可預測的定價,讓您安心無憂。
  • 得益於專用的私人 VM,獲得最佳的性能和強大的安全性

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Ruby cloud hosting 解決方案!

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 fork,預先安裝及設定好所有必要工具,讓您無需任何額外設定即可立即開始編寫程式。

<!-- ![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 分支、特定 tag 或 commit,以及如何管理多個環境(如 staging 和 production)。您還會找到有關環境變數等進階技巧。

最後,若部署過程中遇到任何問題,疑難排解 文件都是協助您高效解決問題、保持順暢工作流程的好幫手。