Dockerfile 将 Bun HTTP 服务器部署到 Google Cloud Run。
在继续之前,请确保您已经具备:
- 准备好部署的 Bun 应用
- 已启用计费的 Google Cloud 账户
- 已安装并配置好 Google Cloud CLI
1
通过选择或创建项目来初始化 gcloud
请确保您已经初始化 Google Cloud CLI。
gcloud init 会让您登录,并提示您选择现有项目或创建新项目。有关 Google Cloud CLI 的更多帮助,请参见 官方文档。terminal
2
(可选)将项目信息存储在环境变量中
为项目 ID 和项目编号设置变量,以便在以下步骤中重复使用。
terminal
3
关联计费账户
列出可用的计费账户,并把一个账户关联到您的项目:将计费账户关联到项目。将
terminal
[BILLING_ACCOUNT_ID] 替换为您的计费账户 ID。terminal
4
启用 API 并配置 IAM 角色
激活所需服务并授予 Cloud Build 权限:
terminal
这些命令会启用 Cloud Run(
run.googleapis.com)和 Cloud Build(cloudbuild.googleapis.com)。从源代码部署需要这两项服务。Cloud Run 运行容器化应用,而 Cloud Build 则负责构建和打包应用。IAM 绑定授予 Compute Engine 服务账户([email protected])权限,代表您构建和部署镜像。5
添加 Dockerfile
在项目根目录创建新的 在项目根目录创建新的
Dockerfile。该文件包含初始化容器、复制本地项目文件、安装依赖和启动应用的指令。Dockerfile
确保启动命令与应用的入口点相对应。如果
package.json 中有启动脚本,启动命令也可以是 CMD ["bun", "run", "start"]。如果应用没有依赖项,可以省略 COPY package.json bun.lock ./ 和 RUN bun install --production --frozen-lockfile 这几行。没有依赖项的项目不会生成 bun.lock。.dockerignore 文件。该文件列出要从容器镜像中_排除_的文件和目录,例如 node_modules。排除这些内容可以让构建更快、镜像更小:.dockerignore
6
部署服务
确保您处在包含
Dockerfile 的目录中,然后直接从本地源码部署:请将
--region 标志更新为您偏好的区域,或者省略该标志以交互方式选择区域。terminal
7
访问您的在线应用
您的 Bun 应用现已上线。访问服务 URL(
https://my-bun-app-....us-west1.run.app)确认一切正常。