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 Bun-Anwendung, die zur Bereitstellung bereit ist
- Ein DigitalOcean-Konto
- DigitalOcean CLI installiert und konfiguriert
- Docker installiert und zu Ihrem
PATHhinzugefügt
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
doctl registry create bun-digitalocean-demoName Endpoint Region slug
bun-digitalocean-demo registry.digitalocean.com/bun-digitalocean-demo sfo2Sie 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.
# 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:
node_modules
Dockerfile*
.dockerignore
.git
.gitignore
README.md
LICENSE
.vscode
.env
# Alle anderen Dateien oder Verzeichnisse, die Sie ausschließen möchtenDocker mit der DigitalOcean Registry authentifizieren
Bevor Sie das Docker-Image erstellen und pushen, authentifizieren Sie Docker mit der DigitalOcean Container Registry:
doctl registry loginSuccessfully authenticated with registry.digitalocean.comNOTE
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:
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.