部署环境变量

添加变量

Zeabur 中可以添加变量,并自动注入到该服务中。

添加,编辑,修改

点选该服务并到 变量 页面,里面的 添加变量 即可新增变量。

添加变量

Zeabur 预设会自动注入以下变量:

  • <YOUR_SERVICE_NAME>_HOST:该服务对内网络通信的 host 名称

  • PORT:该服务对外的 port

  • 其他相关服务,例如数据库(PostgreSQL)、Redis 等,也会自动注入相关变量。

这时我们就不需要再手动添加变量到自己的服务中。

数据库变量

当鼠标悬停在变量上时,可以选择开始编辑或删除变量。

hover效果

点击右上角的 checkbox, 可切换至列表视图。

列表视图

点击编辑 icon, 可以编辑变量的值。

编辑变量

批量编辑

如果你想要一次性添加多个变量,可以使用批量编辑的功能。

点击上方的 编辑原始环境变量 按钮,即可进入批量编辑模式,将以编辑 .env 文件的方式来批量设置服务的环境变量。

批量编辑

变量引用

在 Zeabur 中,可以通过变量引用的方式来引用其他变量。

你只需要在变量设置的时候,用模板语法的方式来引用:

# 例如,你可以这样设置变量
AUTH_INFOR=${USERNAME}:${PASSWORD}

变量引用

这样,USERNAMEPASSWORD 的值就会自动组合注入到 AUTH_INFOR 中。

特殊变量

“特殊变量”是由 Zeabur 预先定义并可直接使用的环境变量。

引用方式

  • 在 Zeabur 内的环境变量输入框中:使用 ${变量} 格式插入特殊变量。
  • 在自己的应用程序中:与一般的环境变量引用方式相同(process.env.VARIABLE)。

变量优先顺序

服务间变量的展开优先顺序如下:

  • 当前服务定义的环境变量将首先被获取。
  • 如果未定义,则其他服务暴露(Expose)的环境变量将被获取。
  • 如果未定义,则特殊变量将被获取。

变量

主机名/端口类

  • ${ZEABUR_[端口名称]_URL}:某个端口对应的 URL。
    • 例如 https://test.zeabur.app

    • 此 URL 是您在“域名”中设置的:

      域名设置

    • 对于从 Git 存储库部署的服务,端口名称 总是 web

  • ${ZEABUR_[端口名称]_DOMAIN}:某个端口对应的域名。
    • 例如 test.zeabur.app
    • 此 URL 是您在“域名”中设置的。
    • 对于从 Git 存储库部署的服务,端口名称 总是 web
  • ${CONTAINER_HOSTNAME}: 当前服务在 Zeabur 项目中的主机名(hostname)。
    • 通常我们会创建一个具有 Expose(向项目暴露)属性的环境变量(例如 ${MYSQL_HOST}), 然后将 ${CONTAINER_HOSTNAME} 的值填入此环境变量。
    • 但是,如果您要在 Zeabur 内引用其他服务的主机名,我们更推荐使用 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 为每个服务生成的随机密码。