本页还没有译文
本页 23 段还没译成日本語,下面显示的是英文原文。Deploy a Bun application on Google Cloud Run
还没翻译译自英文(bun.com)本页 23 段都还没译
Google Cloud Run is a managed platform for deploying and scaling serverless applications. Google handles the infrastructure for you.
This guide deploys a Bun HTTP server to Google Cloud Run using a Dockerfile.
Note
Before continuing, make sure you have:
- A Bun application ready for deployment
- A Google Cloud account with billing enabled
- Google Cloud CLI installed and configured
-
Initialize gcloud by selecting or creating a project
Make sure that you've initialized the Google Cloud CLI.
gcloud initlogs you in and prompts you to either select an existing project or create a new one.For more help with the Google Cloud CLI, see the official documentation.
gcloud initWelcome! This command will take you through the configuration of gcloud. You must sign in to continue. Would you like to sign in (Y/n)? Y You are signed in as [email@example.com]. Pick cloud project to use: [1] existing-bun-app-1234 [2] Enter a project ID [3] Create a new project Please enter numeric choice or text value (must exactly match list item): 3 Enter a Project ID. my-bun-app Your current project has been set to: [my-bun-app] The Google Cloud CLI is configured and ready to use! -
(Optional) Store your project info in environment variables
Set variables for your project ID and number so you can reuse them in the following steps.
PROJECT_ID=$(gcloud projects list --format='value(projectId)' --filter='projectId=my-bun-app') PROJECT_NUMBER=$(gcloud projects list --format='value(projectNumber)' --filter='projectId=my-bun-app') echo $PROJECT_ID $PROJECT_NUMBERmy-bun-app [PROJECT_NUMBER] -
Link a billing account
List your available billing accounts and link one to your project:
gcloud billing accounts listACCOUNT_ID NAME OPEN MASTER_ACCOUNT_ID [BILLING_ACCOUNT_ID] My Billing Account TrueLink your billing account to your project. Replace
[BILLING_ACCOUNT_ID]with the ID of your billing account.gcloud billing projects link $PROJECT_ID --billing-account=[BILLING_ACCOUNT_ID]billingAccountName: billingAccounts/[BILLING_ACCOUNT_ID] billingEnabled: true name: projects/my-bun-app/billingInfo projectId: my-bun-app -
Enable APIs and configure IAM roles
Activate the necessary services and grant Cloud Build permissions:
gcloud services enable run.googleapis.com cloudbuild.googleapis.com gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builderNote
These commands enable Cloud Run (
run.googleapis.com) and Cloud Build (cloudbuild.googleapis.com). Deploying from source requires both. Cloud Run runs your containerized app, while Cloud Build builds and packages it.The IAM binding grants the Compute Engine service account (
$PROJECT_NUMBER-compute@developer.gserviceaccount.com) permission to build and deploy images on your behalf. -
Add a Dockerfile
Create a new
Dockerfilein the root of your project. This file contains the instructions to initialize the container, copy your local project files into it, install dependencies, and start the application.# Use the official Bun image to run the application FROM oven/bun:latest # Copy the package.json and bun.lock into the container COPY package.json bun.lock ./ # Install the dependencies RUN bun install --production --frozen-lockfile # Copy the rest of the application into the container COPY . . # Run the application CMD ["bun", "index.ts"]Note
Make sure that the start command corresponds to your application's entry point. The start command can also be
CMD ["bun", "run", "start"]if you have a start script in yourpackage.json.If your app doesn't have dependencies, you can omit the
COPY package.json bun.lock ./andRUN bun install --production --frozen-lockfilelines. Bun doesn't write abun.lockfor a project with no dependencies.Create a new
.dockerignorefile in the root of your project. It lists the files and directories to exclude from the container image, such asnode_modules. Excluding them keeps builds faster and smaller:node_modules Dockerfile* .dockerignore .git .gitignore README.md LICENSE .vscode .env # Any other files or directories you want to exclude -
Deploy your service
Make sure you're in the directory containing your
Dockerfile, then deploy directly from your local source:Note
Update the
--regionflag to your preferred region, or omit it to select a region interactively.gcloud run deploy my-bun-app --source . --region=us-west1 --allow-unauthenticatedDeploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-west1] will be created. Do you want to continue (Y/n)? Y Building using Dockerfile and deploying container to Cloud Run service [my-bun-app] in project [my-bun-app] region [us-west1] ✓ Building and deploying... Done. ✓ Validating configuration... ✓ Uploading sources... ✓ Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds...]. ✓ Creating Revision... ✓ Routing traffic... ✓ Setting IAM Policy... Done. Service [my-bun-app] revision [my-bun-app-...] has been deployed and is serving 100 percent of traffic. Service URL: https://my-bun-app-....us-west1.run.app -
Visit your live application
Your Bun application is now live.
Visit the Service URL (
https://my-bun-app-....us-west1.run.app) to confirm everything works as expected.