Zum Inhalt springen

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.

  1. Erstelle ein neues GCP-Projekt oder wähle ein bereits vorhandenes Projekt aus.

  2. Erstelle einen neuen Bucket unter Cloud Storage.

  3. Gib ihm einen Namen und nimm alle anderen erforderlichen Einstellungen vor.

  4. Lade deinen dist-Ordner entweder manuell oder unter Verwendung von Cloud Build hoch.

  5. Aktiviere den öffentlichen Zugriff, indem du allUsers eine neue Berechtigung namens Storage Object Viewer hinzufügst.

  6. Bearbeite die Website-Konfiguration und füge ìndex.html als Einstiegspunkt und 404.html als Fehlerseite hinzu.

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.

  1. Erstelle ein neues GCP-Projekt oder wähle ein bereits vorhandenes Projekt aus.

  2. Stelle sicher, dass die Cloud Run API aktiviert ist.

  3. Erstelle einen neuen Dienst.

Dockerfile für statische Websites (Beispiel)
Abschnitt betitelt Dockerfile für statische Websites (Beispiel)

Das folgende Dockerfile erstellt deine Website und stellt sie mit Apache HTTPD (Standardkonfiguration) auf Port 80 bereit.

Dockerfile
FROM node:lts AS build
WORKDIR /app
COPY . .
RUN npm i
RUN npm run build
FROM httpd:2.4 AS runtime
COPY --from=build /app/dist /usr/local/apache2/htdocs/
EXPOSE 80
Dockerfile für SSR-Websites (Beispiel)
Abschnitt betitelt Dockerfile für SSR-Websites (Beispiel)

Das folgende Dockerfile erstellt deine Website und stellt sie mit Node.js (SSR-Adapter) auf Port 4321 bereit.

Dockerfile
FROM node:lts AS runtime
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
ENV HOST=0.0.0.0
ENV PORT=4321
EXPOSE 4321
CMD node ./dist/server/entry.mjs

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.

Terminal-Fenster
# Erstelle deinen Container
docker build .
docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/TARGET-IMAGE:TAG
# Übertrage dein Image in eine Registry
docker push HOSTNAME/PROJECT-ID/IMAGE:TAG

Ä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.

Das Deployment kann manuell in deinem Terminal mit gcloud oder automatisch mit Cloud Build oder einem anderen CI/CD-System durchgeführt werden.

Weitere Veröffentlichungs-Anleitungen