Veröffentliche deine Astro-Website auf Google Cloud
Google Cloud ist eine voll ausgestattete Web-App-Hosting-Plattform, die für die Veröffentlichung einer Astro-Website verwendet werden kann.
So funktioniert die Veröffentlichung
Cloud Storage (nur statisch)
-
Erstelle ein neues GCP-Projekt oder wähle ein bereits vorhandenes Projekt aus.
-
Erstelle einen neuen Bucket unter Cloud Storage.
-
Gib ihm einen Namen und nimm alle anderen erforderlichen Einstellungen vor.
-
Lade deinen
dist
-Ordner entweder manuell oder unter Verwendung von Cloud Build hoch. -
Aktiviere den öffentlichen Zugriff, indem du
allUsers
eine neue Berechtigung namensStorage Object Viewer
hinzufügst. -
Bearbeite die Website-Konfiguration und füge
ìndex.html
als Einstiegspunkt und404.html
als Fehlerseite hinzu.
Cloud Run (SSR und statisch)
Cloud Run ist eine serverlose Plattform, die es dir ermöglicht, einen Container zu betreiben, ohne dass du eine Infrastruktur verwalten musst. Sie kann sowohl für statische als auch für SSR-Websites genutzt werden.
Bereite den Dienst vor
-
Erstelle ein neues GCP-Projekt oder wähle ein bereits vorhandenes Projekt aus.
-
Stelle sicher, dass die Cloud Run API aktiviert ist.
-
Erstelle einen neuen Dienst.
Die Dockerdatei erstellen
Dockerfile für statische Websites (Beispiel)
Das folgende Dockerfile erstellt deine Website und stellt sie mit Apache HTTPD (Standardkonfiguration) auf Port 80
bereit.
Wenn du einen anderen Paketmanager als npm
verwendest, musst du die Befehle ändern:
Dockerfile für SSR-Websites (Beispiel)
Das folgende Dockerfile erstellt deine Website und stellt sie mit Node.js (SSR-Adapter) auf Port 4321
bereit.
Dies sind nur Beispiele für Dockerdateien. Du kannst sie an deine Bedürfnisse anpassen. Du könntest zum Beispiel ein anderes Docker-Image wie node:lts-alpine
verwenden.
Erstelle den Container
Sobald das Dockerfile erstellt ist, erstellst du ein Image und überträgst es zu Google Cloud. Es gibt mehrere Möglichkeiten, dies zu tun:
Lokale Erstellung mit Docker:
Verwende den Befehl docker build
, um das Image zu erstellen, docker tag
, um ihm einen Tag zu geben, und dann docker push
, um es an eine Registry zu übergeben. Im Fall von Google Cloud ist Google Cloud Registry die einfachste Option, aber du kannst auch Docker Hub verwenden.
Ändere die folgenden Werte in den obigen Befehlen, damit sie zu deinem Projekt passen:
SOURCE_IMAGE
: Der lokalen Image-Namen oder die Image-ID.HOSTNAME
: Der Registry-Host (gcr.io
,eu.gcr.io
,asia.gcr.io
,us.gcr.io
).PROJECT
: Deine Google Cloud Projekt-ID.TARGET-IMAGE
: Der Name für das Image, wenn es in der Registry gespeichert wird.TAG
Die Version, die mit dem Image verknüpft ist
Erfahre mehr in der Google-Cloud-Dokumentation
Ein anderes Tool verwenden:
Du kannst ein CI/CD-Tool verwenden, das Docker unterstützt, z.B. GitHub Actions.
Erstelle mit Cloud Build:
Anstatt die Dockerdatei lokal zu erstellen, kannst du Google Cloud anweisen, das Image per Fernzugriff zu erstellen. Siehe dazu die Google Cloud Build-Dokumentation.
Den Container erstellen
Das Deployment kann manuell in deinem Terminal mit gcloud
oder automatisch mit Cloud Build oder einem anderen CI/CD-System durchgeführt werden.
Vergiss nicht, die Berechtigung Cloud Run Invoker
zur Gruppe allUsers
in den Cloud Run-Berechtigungseinstellungen hinzuzufügen!