在大多数情况下,我们建议使用 Firebase 控制台中的自动发布或手动触发的发布。不过,您可能需要更自定义的部署流程。App Hosting 提供了多种自定义部署选项。
使用 Firebase CLI 从源代码进行部署
借助 Firebase CLI,您可以直接将应用的源代码和配置从本地机器推送到 Firebase。如果您有其他 Firebase 部署(例如安全规则或函数),并且想要通过单个 CLI 命令同时部署 Web 应用和后端服务,那么这种方式非常方便。
在部署时,App Hosting 会将您的源代码上传到 Google Cloud Storage 存储分区,在 Cloud Build 中运行框架构建命令,并将最终制品部署到 Cloud Run 和 Cloud CDN。App Hosting 针对本地源代码部署和 GitHub 部署使用相同的构建流程。
如需从本地来源部署应用,请执行以下操作:
- 在本地项目目录中运行
firebase init apphosting
。 - 在提示中,选择 Use an existing project,然后选择所选的 Firebase 项目。
选择要部署到的新后端或现有后端;此步骤会为您的本地目录设置应用托管部署,并提示您输入 App Hosting 成功部署应用所需的信息:
- 要部署到的后端的 ID
- 要部署到的区域(如果创建新的后端)
- 应用代码根目录的路径
App Hosting 会将您的部署偏好设置保存在
firebase.json
中(如果本地项目中不存在该文件,则会创建该文件)。成功完成初始化后,您可以运行firebase deploy
将源代码部署到 App Hosting。
如果您为多个后端设置了本地来源部署(意味着 firebase.json
中有多个 backendId
条目),firebase deploy
将部署到每个后端。如需部署到特定后端,请使用 firebase deploy --only apphosting:backendId
firebase.json 示例
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions",
],
},
]
}
使用 Terraform 进行部署
如果您需要更好地控制构建流程和部署的环境,可以使用 Terraform 进行部署。借助 Terraform,您可以使用声明式配置文件定义和管理 App Hosting 资源,并能够将自己的预构建容器映像直接部署到 App Hosting,而无需依赖 App Hosting 从源代码进行构建。
如果您刚开始使用 Terraform,请参阅使用入门:将 Terraform 与 Firebase 搭配使用。 如果您已熟悉 Terraform,可以先从示例配置文件和其他 App Hosting 资源入手。
使用 Firebase Studio 进行部署
在 Firebase Studio 中使用 App Prototyping 代理创建 Web 应用后,您可以直接从 Firebase Studio 发布或部署到 Firebase App Hosting。请参阅使用 App Hosting 发布应用。