部署變數

環境變數設定

Zeabur 中可以設定環境變數,並自動注入到該應用程式中。

點選該應用程式並到 環境變數 頁面,裡面的 新增環境變數 即可新增環境變數。

加入,編輯,修改

環境變數設定

Zeabur 預設會自動注入以下環境變數:

  • <YOUR_SERVICE_NAME>_HOST:該應用程式對內溝通的 host 名稱

  • PORT:該應用程式對外的 port

  • 其他相關服務,例如資料庫(PostgreSQL)、Redis 等,也會自動注入相關環境變數。

這時我們就不需要再手動設定環境變數到自己的應用程式中。

資料庫環境變數

當滑鼠懸停在變數上時,可以選擇開始編輯或刪除變數。

懸停

點選右上角的 checkbox,會切換列表檢視。

列表檢視

點選編輯 icon,可以編輯變數的值。

編輯

大量編輯

如果你想要一次性加入多個變數,可以使用大量編輯的功能。

點選上方的 編輯原始環境變數 按鈕,即可進入大量編輯模式,將以編輯 .env 文件的方式來大量設定服務的環境變數。

大量編輯

變數引用

在 Zeabur 中,可以透過變數引用的方式來引用其他變數。

你只需要在設定變數的時候,用模板語法的方式來引用:

# 例如,你可以這樣設定變數
AUTH_INFOR=${USERNAME}:${PASSWORD}

變數引用

這樣,USERNAMEPASSWORD 的值就會自動組合注入到 AUTH_INFOR 中。

特殊變數

「特殊變數」指 Zeabur 幫你預先定義好、可以直接使用的環境變數。

引用方式

  • 在 Zeabur 內的環境變數輸入框:使用 ${變數} 格式插入特殊變數。
  • 在自己的應用程式:如同一般的環境變數引用方式 (process.env.VARIABLE)。

變數優先順序

服務間變數的展開優先順序如下:

  • 目前服務定義的環境變數會是第一個取的值。
  • 假如沒有定義,其他服務暴露 (Expose) 的環境變數會是第二取的值。
  • 假如沒有定義,特殊變數會是第三取的值。

變數

Hostname / Port 類

  • ${ZEABUR_[連線埠名稱]_URL}:某個 Port 對應的 URL。
    • https://test.zeabur.app

    • 這個 URL 是你在「網域」裡面設定的:

      網域設定

    • 如果是從 Git 儲存庫部署的服務,連線埠名稱 會是 web

  • ${ZEABUR_[連線埠名稱]_DOMAIN}:某個 Port 對應的網域。
    • test.zeabur.app
    • 這個 URL 是你在「網域」裡面設定的。
    • 如果是從 Git 儲存庫部署的服務,連線埠名稱 會是 web
  • ${CONTAINER_HOSTNAME}: 目前服務在 Zeabur 專案內的主機名稱 (hostname)。
    • 通常我們會建立一個有 Expose(向專案曝露)屬性的環境變數(如 ${MYSQL_HOST}), 然後將 ${CONTAINER_HOSTNAME} 的值填入這個環境變數。
    • 不過假如你是要在 Zeabur 內引用其他服務的 Hostname,我們會更推薦使用 Zeabur 未來推出的 DNS 功能。
  • ${[連線埠名稱]_PORT}:在 Prebuilt 服務裡面定義的連線埠。
    • 比如你設定了 database / 3306 / TCP,則 DATABASE_PORT 會是 3306
    • 僅目前服務內可見。
    • 如果是從 Git 儲存庫部署的服務,這個連線埠會是 8080。你可以從 ${PORT} 讀取這個連線埠。

Zeabur 資訊類

這裡的變數不常用到,但假如你需要目前 Zeabur 服務 / 專案的唯一識別碼, 則這裡的變數會很有幫助。

  • ${ZEABUR_SERVICE_ID}:服務 ID
  • ${ZEABUR_PROJECT_ID}:專案 ID
  • ${ZEABUR_ENVIRONMENT_ID}:服務環境 ID
  • ${ZEABUR_USER_ID}:建立這個專案的使用者 ID

Git 資訊類

這裡的變數只會出現在 Git 服務的編譯階段。

  • ${ZEABUR_GIT_COMMIT_SHA}:目前部署所屬的 Git 提交 SHA 值。
  • ${ZEABUR_GIT_AUTHOR}:目前部署所屬的 Git 提交作者 ID。
  • ${ZEABUR_GIT_BRANCH}:目前部署所屬的 Git 分支名稱。
  • ${ZEABUR_GIT_REPO_NAME}:目前部署所屬的 Git 版本庫名稱。
  • ${ZEABUR_GIT_REPO_OWNER}:目前部署所屬的 Git 版本庫擁有者 ID。
  • ${ZEABUR_GIT_COMMIT_MESSAGE}:目前部署所屬的 Git 提交訊息。

工具類

  • ${PASSWORD}:Zeabur 為每個服務產生的隨機密碼。