Webterminal

De Web Terminal applicatie geeft je commandoregel toegang tot de container waarin het webproces van je applicatie draait. Je kunt de webterminal gebruiken om scripts uit te voeren en bestanden te lezen. Dit is handig voor het debuggen van problemen, prestatiemonitoring, of het handmatig ad-hoc uitvoeren van scripts.

Om toegang te krijgen tot de webterminal moet je:

  • Ten minste één succesvolle deployment van de applicatie hebben.
  • Een gezonde applicatie hebben die draait. Als er fouten zijn of de applicatie is gestopt, zal de webterminal niet beschikbaar zijn.
  • Tenminste één geldig IP adres toevoegen aan de allowlist.

Momenteel is het enige proces dat je via de webterminal kunt beheren het webproces. Achtergrondprocessen of cronjobs zijn vooralsnog niet beschikbaar in de webterminal.

Webterminal met een Dockerfile

Als je applicatie is gemaakt met een Dockerfile, zorg er dan voor dat Bash in de container is geïnstalleerd. In de meeste gevallen bevat het basisimage (bijvoorbeeld Ubuntu) een shellpakket en zal het standaard werken. In sommige meer gestroomlijnde containers is het shellpakket misschien niet inbegrepen, en moet je het toevoegen. Het basisimage bepaalt hoe het shell pakket wordt toegevoegd:

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

Authenticatie instellen

IP adressen die aan de allowlist worden toegevoegd moeten uniek zijn. Als je een IP adres probeert toe te voegen dat al in de allowlist staat, krijg je een foutmelding en kun je het dubbele IP adres niet toevoegen.

IP adres toevoegen

De eerste keer dat je naar de Web Terminal pagina voor je applicatie in MyKinsta gaat, klik je op Verificatie instellen om IP adressen toe te voegen aan de toestemmingslijst. Om te zien vanaf welk adres je verbinding maakt, gebruik je een tool als Test Your IPv6.

Voer het eerste IP adres in dat je wilt toestaan. Om meer IP adressen toe te voegen, klik je op Nog een toevoegen. Zodra je alle IP adressen hebt ingevoerd die je wilt toestaan, klik je op Authenticatie instellen.

Voeg IP adressen toe aan de IP toestemmingslijst om de webterminal verificatie in te stellen.
Voeg IP adressen toe aan de IP toestemmingslijst om de webterminal verificatie in te stellen.

Als je in de toekomst meer IP adressen moet toevoegen, klik dan op IP adres toevoegen in het onderdeel toestemmingslijst van de Web Terminal pagina.

Een IP adres verwijderen

Om een IP adres uit de toestemmingslijst te verwijderen, klik je op het pictogram Verwijderen (prullenbak) naast het IP adres dat je wilt verwijderen en klik je op IP adres verwijderen om de verwijdering te bevestigen.

Webterminal starten en openen

Om de webterminal te openen, moet je er eerst verbinding mee maken. Klik op Web Terminalstarten om te beginnen met het openen van de verbinding. Terwijl de verbinding wordt geopend, zijn de opties op de Web Terminal pagina uitgeschakeld.

Opties op de WebTerminal pagina zijn uitgeschakeld terwijl de Web Terminal verbinding wordt geopend.
Opties op de WebTerminal pagina zijn uitgeschakeld terwijl de Web Terminal verbinding wordt geopend.

Zodra de deployment van de webterminal pod voltooid is, verschijnt Webterminal is draaiend boven de allowlist. Klik op Web Terminal openen om de webterminal in een nieuw tabblad in je browser te openen.

Open de webterminal.
Open de webterminal.

Mogelijk zie je een pagina Web Terminat startend terwijl de terminal laadt. Zodra de terminal geladen is, kun je commando’s uitvoeren zoals in een gewone terminal. Welke commando’s beschikbaar zijn hangt af van de uitvoerbare bestanden in je applicatie.

Terminal gebruikersnaam

Als je applicatie is gemaakt met een Nixpack (Gebruik Nixpacks om container image op te zetten in de stap Bouwomgeving), dan is de gebruikersnaam in de terminal meestal “root”. Kinsta biedt Nixpacks, een open-source project dat wordt onderhouden door Railway, als een van de opties om automatisch de taal te bepalen en een container te maken voor je applicatie op basis van je repository.

Als je applicatie is gemaakt met een Buildpack (Gebruik Buildpacks om container image in te stellen in de stap Bouwomgeving), kan de gebruikersnaam in de terminal “heroku” zijn. Kinsta biedt Buildpacks, een open-source project dat wordt onderhouden door Heroku, als een van de opties om automatisch de taal te bepalen en een container te maken voor je applicatie op basis van je repository. Dit kan worden overgenomen in de webterminal.

Als je applicatie is gemaakt met een Dockerfile (Gebruik Dockerfile om container imagein te stellen in de stap Buildomgeving ), zal de gebruikersnaam in de terminal meestal “root” zijn, maar dat hangt af van hoe je Dockerfile is ingesteld.

Webterminal stoppen en sluiten

Als je klaar bent met werken in de terminal, sluit dan het tabblad in je browser om de verbinding met de webterminal te sluiten. Het sluiten van het tabblad stopt de terminal momenteel niet, maar als je de terminal weer wilt openen, moet je op Open Web Terminal klikken, ongeveer 30 seconden wachten, en het nieuwe tabblad verversen om de terminal weer te zien.

Om de webterminal te stoppen, klik je op Stop webterminal.

Terwijl de terminal draait, kun je de IP toestemmingslijst niet bewerken. Als je die moet bewerken, stop dan de terminal, breng je wijzigingen aan in de toestemmingslijst en open de terminal opnieuw.

Als de webterminalverbinding is gemaakt, maar niet is geopend, wordt de verbinding na 24 uur automatisch afgesloten.

Nixpacks binaire directories

Met Nixpacks kunnen de binaire mappen verschillen van de standaard binaire directories voor de taal van de applicatie. De volgende tabel toont de binaire directories die worden gebruikt voor enkele van de meest voorkomende talen:

TaalDirectory
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
ScalaScala heeft geen specifiek standaard binair pad zoals sommige andere gecompileerde talen. Wanneer je een Scala programma compileert, genereert het bytecode die draait op de Java Virtual Machine (JVM).

De gecompileerde Scala klassen worden meestal opgeslagen in een mappenstructuur die de pakketstructuur van je code weerspiegelt. Dit is vergelijkbaar met hoe Java klassen zijn georganiseerd. Standaard, wanneer je een Scala bronbestand compileert, worden de gecompileerde .class bestanden in dezelfde map geplaatst als de broncode (binnen een subdirectory structuur gebaseerd op de pakketdeclaraties).

Indien nodig kun je de runtime tools van Scala installeren met een Dockerfile in plaats van met een Nixpack.

PHP/nix/var/nix/profiles/default/bin/php
GoGo heeft geen specifiek standaard binair pad zoals sommige andere gecompileerde talen. Als je een Go programma compileert, wordt het resulterende binaire uitvoerbare bestand standaard in dezelfde map geplaatst als je broncode.

Indien nodig kun je de runtime tools van Go installeren met een Dockerfile in plaats van met een Nixpack.

Buildpack binaire directories

Wanneer je een applicatie toevoegt in MyKinsta met behulp van Buildpacks, kunnen de binaire directories verschillen van de standaard binaire directories voor de taal van de applicatie. De volgende tabel toont de binaire directories die worden gebruikt voor elke buildpack taal:

TaalDirectory
Node.js/layers/heroku_nodejs-engine/dist/bin/node
Ruby/usr/bin/ruby
Python/usr/bin/python
Java/layers/heroku_jvm/openjdk/bin/java
ScalaScala heeft geen specifiek standaard binair pad zoals sommige andere gecompileerde talen. Wanneer je een Scala programma compileert, genereert het bytecode die draait op de Java Virtual Machine (JVM).

De gecompileerde Scala klassen worden meestal opgeslagen in een mappenstructuur die de pakketstructuur van je code weerspiegelt. Dit is vergelijkbaar met hoe Java klassen zijn georganiseerd. Standaard, wanneer je een Scala bronbestand compileert, worden de gecompileerde .class bestanden in dezelfde map geplaatst als de broncode (binnen een subdirectory structuur gebaseerd op de pakketdeclaraties).

Indien nodig kun je de runtime tools van Scala installeren met behulp van een Dockerfile in plaats van een buildpack.

PHP/workspace/.heroku/php/bin/php
GoGo heeft geen specifiek standaard binair pad zoals sommige andere gecompileerde talen. Als je een Go programma compileert, wordt het resulterende binaire uitvoerbare bestand standaard in dezelfde map geplaatst als je broncode.

Indien nodig kun je de runtime tools van Go installeren met een Dockerfile in plaats van een buildpack.

Problemen oplossen

  • Als je bij het openen van de webterminal een Error 1016 – Origin DNS pagina ziet in plaats van het terminal scherm, komt dit door een kleine vertraging in de DNS propagatie. Wacht 1 minuut en ververs de pagina tot je het terminalscherm ziet. Als het probleem langer dan een paar minuten aanhoudt, neem dan contact op met ons Ondersteuningsteam.
  • Als je een 403: Forbidden fout bij het openen van de webterminal, betekent dit dat je IP adres niet in de toestemmingslijst staat. Stop de webterminal, voeg je IP adres toe en start de webterminal opnieuw.
  • Een fout die lijkt op de volgende fout ERRO[0000] exec failed geeft aan dat de container het shell-pakket mist. Je moet dat pakket aan je container toevoegen om de webterminal te kunnen draaien.

    ERRO[0000] exec mislukt: container_linux.go:425: starten containerproces veroorzaakt: exec: “bash”: uitvoerbaar bestand niet gevonden in $PATH
    commando beëindigd met exit code 1

Was dit artikel nuttig?