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 分支、標籤或 commit,以及管理多個環境(如 staging 和 production),請參閱 進階部署用法 文件。您亦可找到有關環境變數及其他實用功能的提示。

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