Skip to content

DigitalOcean ist eine Cloud-Plattform, die verschiedene Dienste zum Erstellen und Bereitstellen von Anwendungen bietet.

In dieser Anleitung stellen wir einen Bun-HTTP-Server mit einer Dockerfile auf DigitalOcean bereit.

NOTE

Bevor Sie fortfahren, stellen Sie sicher, dass Sie Folgendes haben:

Eine neue DigitalOcean Container Registry erstellen

Erstellen Sie eine neue Container Registry, um das Docker-Image zu speichern.

Über das DigitalOcean-Dashboard

Gehen Sie im DigitalOcean-Dashboard zu Container Registry und geben Sie die Details für die neue Registry ein.

Stellen Sie sicher, dass die Details korrekt sind, und klicken Sie dann auf Registry erstellen.

Über die DigitalOcean CLI
bash
doctl registry create bun-digitalocean-demo
txt
Name                     Endpoint                                           Region slug
bun-digitalocean-demo    registry.digitalocean.com/bun-digitalocean-demo    sfo2

Sie sollten die neue Registry im DigitalOcean Registry-Dashboard sehen:

Eine neue Dockerfile erstellen

Stellen Sie sicher, dass Sie sich im Verzeichnis mit Ihrem Projekt befinden, und erstellen Sie dann eine neue Dockerfile im Stammverzeichnis Ihres Projekts. Diese Datei enthält die Anweisungen zum Initialisieren des Containers, zum Kopieren Ihrer lokalen Projektdateien, zum Installieren von Abhängigkeiten und zum Starten der Anwendung.

docker
# Verwenden Sie das offizielle Bun-Image zum Ausführen der Anwendung
FROM oven/bun:debian

# Setzen Sie das Arbeitsverzeichnis auf `/app`
WORKDIR /app

# Kopieren Sie die package.json und bun.lock in den Container
COPY package.json bun.lock ./

# Installieren Sie die Abhängigkeiten
RUN bun install --production --frozen-lockfile

# Kopieren Sie den Rest der Anwendung in den Container
COPY . .

# Exponieren Sie den Port (DigitalOcean setzt die PORT-Umgebungsvariable)
EXPOSE 8080

# Führen Sie die Anwendung aus
CMD ["bun", "index.ts"]

NOTE

Stellen Sie sicher, dass der Startbefehl dem Einstiegspunkt Ihrer Anwendung entspricht. Dies kann auch `CMD ["bun", "run", "start"]` sein, wenn Sie ein Start-Skript in Ihrer `package.json` haben.

Dieses Image installiert Abhängigkeiten und führt Ihre App mit Bun in einem Container aus. Wenn Ihre App keine Abhängigkeiten hat, können Sie die Zeile RUN bun install --production --frozen-lockfile weglassen.

Erstellen Sie eine neue .dockerignore-Datei im Stammverzeichnis Ihres Projekts. Diese Datei enthält die Dateien und Verzeichnisse, die vom Container-Image ausgeschlossen werden sollten, wie z.B. node_modules. Dies macht Ihre Builds schneller und kleiner:

docker
node_modules
Dockerfile*
.dockerignore
.git
.gitignore
README.md
LICENSE
.vscode
.env
# Alle anderen Dateien oder Verzeichnisse, die Sie ausschließen möchten

Docker mit der DigitalOcean Registry authentifizieren

Bevor Sie das Docker-Image erstellen und pushen, authentifizieren Sie Docker mit der DigitalOcean Container Registry:

bash
doctl registry login
txt
Successfully authenticated with registry.digitalocean.com

NOTE

Dieser Befehl authentifiziert Docker mit der DigitalOcean-Registry unter Verwendung Ihrer DigitalOcean-Anmeldedaten. Ohne diesen Schritt schlägt der Build- und Push-Befehl mit einem 401-Authentifizierungsfehler fehl.

Das Docker-Image erstellen und in die DigitalOcean Registry pushen

Stellen Sie sicher, dass Sie sich im Verzeichnis mit Ihrer Dockerfile befinden, und erstellen und pushen Sie dann das Docker-Image in einem Befehl in die DigitalOcean Registry:

bash
docker buildx build --platform=linux/amd64 -t registry.digitalocean.com/bun-digitalocean-demo/bun-digitalocean-demo:latest --push .

NOTE

Wenn Sie auf einem ARM-Mac (M1/M2) bauen, müssen Sie `docker buildx` mit `--platform=linux/amd64` verwenden, um die Kompatibilität mit der DigitalOcean-Infrastruktur sicherzustellen. Die Verwendung von `docker build` ohne das Platform-Flag erstellt ein ARM64-Image, das nicht auf DigitalOcean läuft.

Sobald das Image gepusht wurde, sollten Sie es im DigitalOcean Registry-Dashboard sehen:

Ein neues DigitalOcean App Platform-Projekt erstellen

Gehen Sie im DigitalOcean-Dashboard zu App Platform > App erstellen. Wir können ein Projekt direkt vom Container-Image aus erstellen.

Stellen Sie sicher, dass die Details korrekt sind, und klicken Sie dann auf Weiter.

Überprüfen und konfigur Sie die Ressourceneinstellungen und klicken Sie dann auf App erstellen.

Ihre Live-Anwendung besuchen

🥳 Ihre App ist jetzt live! Sobald die App erstellt wurde, sollten Sie sie im App Platform-Dashboard mit der öffentlichen URL sehen.

Bun von www.bunjs.com.cn bearbeitet