Das Webterminal der Anwendung ermöglicht dir den Zugriff auf die Kommandozeile des Containers, in dem der Webprozess deiner Anwendung läuft. Du kannst das Webterminal nutzen, um Skripte auszuführen und Dateien zu lesen. Das ist nützlich, um Probleme zu beheben, die Leistung zu überwachen oder Skripte ad-hoc auszuführen.

Um auf das Webterminal zuzugreifen, musst du:

  • Mindestens eine erfolgreiche Bereitstellung der Anwendung.
  • Eine intakte Anwendung, die läuft. Wenn es Fehler gibt oder die Anwendung gestoppt ist, ist das Webterminal nicht verfügbar.
  • Füge mindestens eine gültige IP-Adresse zur Erlaubnisliste hinzu.

Derzeit ist der einzige Prozess, auf den du über das Webterminal zugreifen kannst, der Webprozess. Hintergrundprozesse oder Cron-Jobs sind im Webterminal nicht verfügbar.

Webterminal mit einem Dockerfile

Wenn deine Anwendung mit einem Dockerfile erstellt wurde, stelle sicher, dass Bash im Container installiert ist. In den meisten Fällen enthält das Basis-Image (z. B. Ubuntu) ein Shell-Paket und funktioniert standardmäßig. In einigen schlankeren Containern ist das Shell-Paket möglicherweise nicht enthalten und du musst es hinzufügen. Das Basis-Image bestimmt, wie du das Shell-Paket hinzufügst:

  • Alpine: apk add bash
  • Ubuntu/Debian: apt install bash
  • Fedora: dnf install bash

Authentifizierung einrichten

IP-Adressen, die der Zulassen-Liste hinzugefügt werden, müssen eindeutig sein. Wenn du versuchst, eine IP-Adresse hinzuzufügen, die sich bereits in der Zulassen-Liste befindet, erhältst du eine Fehlermeldung und kannst die doppelte IP-Adresse nicht hinzufügen.

IP-Adresse hinzufügen

Wenn du das erste Mal die Webterminal-Seite für deine Anwendung in MyKinsta aufrufst, klickst du auf Authentifizierung einrichten, um IP-Adressen zur Erlaubnisliste hinzuzufügen. Um zu sehen, von welcher Adresse du dich verbindest, kannst du ein Tool wie Test your IPv6 verwenden.

Gib die erste IP-Adresse ein, die du zulassen willst. Um weitere IP-Adressen hinzuzufügen, klicke auf Weitere hinzufügen. Wenn du alle IP-Adressen eingegeben hast, die du zulassen willst, klicke auf Authentifizierung einrichten.

Füge IP-Adressen zur IP-Zulassungsliste hinzu, um die Webterminal-Authentifizierung einzurichten.
Füge IP-Adressen zur IP-Zulassungsliste hinzu, um die Webterminal-Authentifizierung einzurichten.

Wenn du in Zukunft weitere IP-Adressen hinzufügen möchtest, klicke auf der Webterminal-Seite im Bereich Erlaubnisliste auf IP-Adresse hinzufügen.

Eine IP-Adresse löschen

Um eine IP-Adresse aus der Zulässigkeitsliste zu entfernen, klicke auf das Symbol Löschen (Mülleimer) neben der IP-Adresse, die du entfernen möchtest, und bestätige die Löschung mit IP-Adresse löschen.

Webterminal starten und öffnen

Um das Webterminal zu öffnen, musst du dich zunächst mit ihm verbinden, was einen Webterminal-Pod zur Folge hat. Klicke auf Webterminal starten , um die Verbindung zu öffnen. Während die Verbindung geöffnet wird, sind die Optionen auf der Webterminal-Seite deaktiviert.

Die Optionen auf der Webterminal-Seite sind deaktiviert, während die Webterminal-Verbindung geöffnet ist.
Die Optionen auf der Webterminal-Seite sind deaktiviert, während die Webterminal-Verbindung geöffnet ist.

Sobald die Bereitstellung des Webterminal-Pods abgeschlossen ist, erscheint Webterminal wird ausgeführt über der Zulassen-Liste. Klicke auf Webterminal öffnen, um das Webterminal in einem neuen Tab in deinem Browser zu öffnen.

Öffne das Webterminal.
Öffne das Webterminal.

Es kann sein, dass du die Seite Webterminal starten siehst, während das Terminal geladen wird. Sobald das Terminal geladen ist, kannst du Befehle wie in einem normalen Terminal ausführen. Welche Befehle dir zur Verfügung stehen, hängt davon ab, welche ausführbaren Dateien in deiner Anwendung vorhanden sind.

Terminal-Benutzername

Wenn deine Anwendung mit einem Nixpack erstellt wurde (verwende Nixpacks, um das Container-Image im Schritt Build-Umgebung einzurichten), ist der Benutzername im Terminal normalerweise „root“. Kinsta bietet Nixpacks, ein Open-Source-Projekt, das von Railway gepflegt wird, als eine der Optionen an, um automatisch die Sprache zu bestimmen und einen Container für deine Anwendung auf Basis deines Repositorys zu erstellen.

Wenn deine Anwendung mit einem Buildpack erstellt wurde (verwende Buildpacks, um das Container-Image im Schritt Build-Umgebung einzurichten), kann der Benutzername im Terminal „heroku“ sein. Kinsta bietet Buildpacks, ein Open-Source-Projekt, das von Heroku gepflegt wird, als eine der Optionen an, um automatisch die Sprache zu bestimmen und einen Container für deine Anwendung auf Basis deines Repositorys zu erstellen. Dies kann sich auf das Webterminal übertragen.

Wenn deine Anwendung mit einem Dockerfile erstellt wurde (Verwende das Docker-file, um das Container-Image im Schritt Build-Umgebung einzurichten), ist der Benutzername im Terminal normalerweise „root“, aber das hängt davon ab, wie dein Docker file eingerichtet ist.

Webterminal beenden und schließen

Wenn du mit der Arbeit im Terminal fertig bist, schließe den Tab in deinem Browser, um die Verbindung zum Webterminal zu beenden. Wenn du das Terminal jedoch wieder öffnen willst, musst du auf Webterminal öffnen klicken, etwa 30 Sekunden warten und den neuen Tab aktualisieren, um das Terminal wieder zu sehen.

Um das Webterminal zu beenden, klicke auf Webterminal beenden.

Während das Terminal läuft, kannst du die IP-Zulassungsliste nicht bearbeiten. Wenn du sie bearbeiten musst, beende das Terminal, nimm deine Änderungen an der Zulassen-Liste vor und öffne das Terminal erneut.

Wenn die Webterminal-Verbindung erstellt, aber nicht geöffnet wurde, wird die Verbindung nach 24 Stunden automatisch wieder beendet.

Nixpacks Binäre Verzeichnisse

Bei Nixpacks können die Binärverzeichnisse von den Standard-Binärverzeichnissen für die Anwendungssprache abweichen. Die folgende Tabelle zeigt die Binärverzeichnisse, die für einige der gängigsten Sprachen verwendet werden:

Sprache Verzeichnis
Node.js /nix/var/nix/profiles/default/bin/node
Ruby /nix/var/nix/profiles/default/bin/ruby
Python /nix/var/nix/profiles/default/bin/python
Java /nix/var/nix/profiles/default/bin/java
Scala Scala hat keinen bestimmten Standard-Binärpfad wie einige andere kompilierte Sprachen. Wenn du ein Scala-Programm kompilierst, wird Bytecode erzeugt, der auf der Java Virtual Machine (JVM) läuft.

Die kompilierten Scala-Klassen werden normalerweise in einer Verzeichnisstruktur gespeichert, die die Paketstruktur deines Codes widerspiegelt. Das ist ähnlich wie bei der Organisation von Java-Klassen. Wenn du eine Scala-Quelldatei kompilierst, werden die kompilierten .class-Dateien standardmäßig im gleichen Verzeichnis wie der Quellcode abgelegt (in einer Unterverzeichnisstruktur, die auf den Paketdeklarationen basiert).

Wenn du musst, kannst du die Scala-Laufzeitwerkzeuge mit einer Dockerdatei installieren, anstatt ein Nixpack zu verwenden.

PHP /nix/var/nix/profiles/default/bin/php
Go Go hat keinen bestimmten Standard-Binärpfad wie einige andere kompilierte Sprachen. Wenn du ein Go-Programm kompilierst, wird die daraus resultierende ausführbare Binärdatei in der Regel im gleichen Verzeichnis wie dein Quellcode abgelegt.

Wenn du musst, kannst du die Laufzeitwerkzeuge von Go mit einem Dockerfile installieren, anstatt ein Nixpack zu verwenden.

Buildpack-Binärverzeichnisse

Wenn du eine Anwendung in MyKinsta mithilfe von Buildpacks hinzufügst, können sich die Binärverzeichnisse von den Standard-Binärverzeichnissen für die Anwendungssprache unterscheiden. Die folgende Tabelle zeigt die Binärverzeichnisse, die für jede Buildpack-Sprache verwendet werden:

Sprache Verzeichnis
Node.js /layers/heroku_nodejs-engine/dist/bin/node
Ruby /usr/bin/ruby
Python /usr/bin/python
Java /layers/heroku_jvm/openjdk/bin/java
Scala Scala hat keinen speziellen Standard-Binärpfad wie einige andere kompilierte Sprachen. Wenn du ein Scala-Programm kompilierst, wird Bytecode erzeugt, der auf der Java Virtual Machine (JVM) läuft.

Die kompilierten Scala-Klassen werden normalerweise in einer Verzeichnisstruktur gespeichert, die die Paketstruktur deines Codes widerspiegelt. Das ist ähnlich wie bei der Organisation von Java-Klassen. Wenn du eine Scala-Quelldatei kompilierst, werden die kompilierten .class-Dateien standardmäßig im gleichen Verzeichnis wie der Quellcode abgelegt (in einer Unterverzeichnisstruktur, die auf den Paketdeklarationen basiert).

Wenn du musst, kannst du die Scala-Laufzeitwerkzeuge mit einem Dockerfile anstelle eines Buildpacks installieren.

PHP /workspace/.heroku/php/bin/
Go Go hat keinen bestimmten Standard-Binärpfad wie einige andere kompilierte Sprachen. Wenn du ein Go-Programm kompilierst, wird die ausführbare Binärdatei in der Regel in dasselbe Verzeichnis wie dein Quellcode gelegt.

Wenn du musst, kannst du die Laufzeitwerkzeuge von Go mit einem Dockerfile statt mit einem Buildpack installieren.

Fehlersuche

  • Wenn du beim Öffnen des Webterminals statt des Terminalbildschirms die Seite Error 1016 – Origin DNS siehst, liegt das an einer leichten Verzögerung bei der DNS-Verbreitung. Warte eine Minute und aktualisiere die Seite, bis du den Terminalbildschirm siehst. Wenn das Problem länger als ein paar Minuten anhält, wende dich an unser Support-Team.
  • Wenn du eine 403: Forbidden-Fehler siehst, wenn du das Webterminal öffnest, bedeutet das, dass deine IP-Adresse nicht in der Erlaubnisliste steht. Beende das Webterminal, füge deine IP-Adresse hinzu und starte das Webterminal erneut.
  • Ein Fehler ähnlich dem folgenden ERRO[0000] exec failed zeigt an, dass dem Container das Shell-Paket fehlt. Du musst dieses Paket zu deinem Container hinzufügen, um das Webterminal starten zu können.

    ERRO[0000] exec failed: container_linux.go:425: starting container process caused: exec: „bash“: executable file not found in $PATH
    befehl wurde mit Exit Code 1 beendet

Verwandte Dokumentation