檢視原始檔 在 Gigalixir 上部署

我們需要的

我們對這份指南唯一的需求,是一個可用的 Phoenix 應用程式。對於需要部署簡單應用程式的人,請遵循 使用與執行指南

目標

本指南的主要目標,是讓 Phoenix 應用程式可以在 Gigalixir 上執行。

步驟

讓我們將這個流程分成幾個步驟,這樣我們才能掌握目前的進度。

  • 初始化 Git 儲存庫
  • 安裝 Gigalixir CLI
  • 註冊 Gigalixir
  • 建立並設定 Gigalixir 應用程式
  • 提供資料庫
  • 讓我們的專案為 Gigalixir 準備好
  • 部署時間到了!
  • 有用的 Gigalixir 指令

初始化 Git 儲存庫

如果還沒的話,我們需要將我們的檔案提交到 git。我們可以在專案目錄中執行下列指令來執行此動作

$ git init
$ git add .
$ git commit -m "Initial commit"

安裝 Gigalixir CLI

遵循 這裡 的說明,為你的平台安裝指令介面。

註冊 Gigalixir

我們可以在 gigalixir.com註冊帳戶,或使用 CLI。讓我們使用 CLI。

$ gigalixir signup

Gigalixir 的免費方案不需要信用卡,並提供 1 個應用程式執行個體和 1 個 PostgreSQL 資料庫,但請考慮如果你執行的是生產應用程式,要升級到付費方案。

接下來,讓我們登入

$ gigalixir login

並驗證

$ gigalixir account

建立並設定我們的 Gigalixir 應用程式

在 Gigalixir 上佈署 Phoenix 應用程式的有三種不同方法:使用 Mix、使用 Elixir 版本或使用 Distillery。本指南將使用 Mix,因為它最容易入門,但是您將無法連接遠端觀察者或進行熱升級。如需更多資訊,請參閱 Mix 與 Distillery 和 Elixir 發行版比較。如果您想使用其他方法佈署,請遵照 入門指南 操作。

建立 Gigalixir 應用程式

讓我們建立一個 Gigalixir 應用程式

$ gigalixir create -n "your_app_name"

請注意:之後將無法變更應用程式名稱。如果您未提供名稱,將使用隨機名稱。

驗證已建立應用程式

$ gigalixir apps

驗證是否已建立 Git 遠端

$ git remote -v

指定版本

我們使用的組建包預設使用相當舊的 Elixir、Erlang 和 Node.js 版本,在開發環境中執行相同的版本通常是比較好的作法,因此讓我們這麼做。

$ echo 'elixir_version=1.14.3' > elixir_buildpack.config
$ echo 'erlang_version=24.3' >> elixir_buildpack.config
$ echo 'node_version=12.16.3' > phoenix_static_buildpack.config

Phoenix v1.6 使用 esbuild 編譯您的資產,然而所有 Gigalixir 映象都內建 npm,因此我們將直接組態 npm 來佈署我們的資產。如果您尚未擁有任何 assets/package.json 檔案,請新增一個,其中含有下列內容

{
  "scripts": {
    "deploy": "cd .. && mix assets.deploy && rm -f _build/esbuild*"
  }
}

最後,不要忘記提交

$ git add elixir_buildpack.config phoenix_static_buildpack.config assets/package.json
$ git commit -m "Set Elixir, Erlang, and Node version"

讓我們的專案準備好使用 Gigalixir

我們不需要為在 Gigalixir 上執行應用程式執行任何操作,但對於試營運應用程式,您可能想要強制執行 SSL。如需執行此操作的相關資訊,請參閱 強制執行 SSL

您可能也會想對您的資料庫連線使用 SSL。為此,請在您的 Repo 組態中取消註解 ssl: true 這行。

準備資料庫

讓我們為應用程式準備資料庫

$ gigalixir pg:create --free

驗證是否已建立資料庫

$ gigalixir pg

驗證是否已建立 DATABASE_URLPOOL_SIZE

$ gigalixir config

佈署時間到囉!

我們的專案現在已準備好於 Gigalixir 上佈署。

$ git push gigalixir

查看您的佈署狀態,並等到應用程式 正常

$ gigalixir ps

執行遷移

$ gigalixir run mix ecto.migrate

查看您的應用程式記錄

$ gigalixir logs

如果一切正常,讓我們看看您的應用程式在 Gigalixir 上執行的情況

$ gigalixir open

好用的 Gigalixir 指令

開啟遠端主控台

$ gigalixir account:ssh_keys:add "$(cat ~/.ssh/id_rsa.pub)"
$ gigalixir ps:remote_console

如需開啟遠端觀察者,請參閱 遠端觀察者

如需設定叢集,請參閱 叢集節點

如需執行熱升級,請參閱熱升級

如需使用自訂網域、調整、工作及其他功能,請參閱Gigalixir 文件

疑難排解

請參閱疑難排解

另外,請務必傳送電子郵件至 help@gigalixir.com索取邀請,並在Slack上加入#gigalixir頻道。