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 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 公鑰加入 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 分支、標籤或指定 commit,以及管理多個環境(如 staging 與 production),請參考 進階部署用法 文件。您也能找到關於環境變數與其他實用功能的建議。

如有任何疑問或遇到問題,疑難排解 文件隨時可協助您保持順暢高效的部署流程。