How to Deploy PocketBase to Cloud Run

It is now possible to run PocketBase on Google CloudRun because of the recent support for mounting volumes. This is a guide on how to deploy PocketBase on Google Cloud Run.

Features 

Prerequisites 

Getting Started 

Fork this repository or click "Use this template" to create your own repository.

Steps 

Create a new service

Google Cloud Build 

  • Setup with Cloud Build
    • Repository Provider: GitHub
    • Select Repository: THIS_REPOSITORY_FORK
  • Branch: main
  • Build Configuration: Dockerfile

General Settings 

  • Allow unauthenticated invocations
  • CPU is only allocated when the service is handling requests
  • Maximum number of requests per container is set to 1000
  • Maximum number of containers is set to 1
  • Timeout is set to 3600
  • Ingress is set to internal and all traffic

Container(s), Volumes, Networking, Security 

Volumes 
  • Add volume
    • Volume type: Google Storage bucket
    • Volume name: remote-storage (or any name you want)
    • Bucket: YOUR_BUCKET_NAME
    • Read-only: false
Container(s) 
  • Startup CPU boost is enabled
  • Volume mount (s)
    • Volume name: remote-storage
    • Mount path: /cloud/storage

Add Health Checks 

You can add a health check to your service that uses Pocketbase's health check endpoint /api/health.

Deploy and Wait 

Now create the service and wait for the cloud build to finish.

If everything goes well, you should see the service deployed.

FAQ 

What if I have local files that I want to use? 

pb_datapb_public, and pb_hooks are all directories you might use during development.

You can upload these directories to your Google Cloud Storage bucket you created earlier to the root directory.

Can I use a custom domain? 

Yes, you can use a custom domain. You can follow the guide on the official documentation.

👍 👀 🔥 🚀 🎉 🤯 👎 ❤️
263 view(s)