Terminal web

Le terminal Web de l’application vous permet d’accéder en ligne de commande au conteneur dans lequel s’exécute le processus web de votre application. Vous pouvez utiliser le terminal web pour exécuter des scripts et lire des fichiers. Cette fonction est utile pour le débogage, le contrôle des performances ou l’exécution manuelle de scripts ad hoc.

Pour accéder au terminal web, vous devez :

  • Avoir au moins un déploiement réussi de l’application.
  • Avoir une application saine qui fonctionne. En cas d’erreur ou d’arrêt de l’application, le terminal web ne sera pas disponible.
  • Ajouter au moins une adresse IP valide à la liste d’autorisation.

Actuellement, le seul processus auquel vous pouvez accéder via le terminal web est le processus web. Les processus d’arrière-plan ou les tâches cron ne sont pas disponibles dans le terminal web.

Terminal web avec un fichier Docker

Si votre application est créée avec un fichier Docker, assurez-vous que Bash est installé dans le conteneur. Dans la plupart des cas, l’image de base (par exemple Ubuntu) inclut un paquet shell et fonctionnera par défaut. Dans certains conteneurs plus rationalisés, le paquet shell peut ne pas être inclus, et vous devrez l’ajouter. L’image de base détermine comment ajouter le paquetage shell :

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

Configurer l’authentification

Les adresses IP ajoutées à la liste d’autorisation doivent être uniques. Si vous essayez d’ajouter une adresse IP qui se trouve déjà dans la liste d’autorisation, vous recevrez une erreur et vous ne pourrez pas ajouter l’adresse IP en double.

Ajouter une adresse IP

La première fois que vous allez sur la page du terminal web pour votre application dans MyKinsta, cliquez sur Configurer l’authentification pour ajouter des adresses IP à la liste d’autorisation. Pour connaître l’adresse à partir de laquelle vous vous connectez, utilisez un outil tel que Test your IPv6.

Saisissez la première adresse IP que vous souhaitez autoriser. Pour ajouter d’autres adresses IP, cliquez sur Ajouter une autre. Une fois que vous avez saisi toutes les adresses IP que vous souhaitez autoriser, cliquez sur Configurer l’authentification.

Ajoutez des adresses IP à la liste des adresses IP autorisées pour configurer l'authentification du terminal Web.
Ajoutez des adresses IP à la liste des adresses IP autorisées pour configurer l’authentification du terminal Web.

Si vous devez ajouter d’autres adresses IP à l’avenir, cliquez sur Ajouter une adresse IP dans la section Liste d’autorisation de la page Terminal web.

Supprimer une adresse IP

Pour supprimer une adresse IP de la liste d’autorisation, cliquez sur l’icône Supprimer (corbeille) à côté de l’adresse IP que vous souhaitez supprimer et cliquez sur Supprimer l’adresse IP pour confirmer la suppression.

Démarrer et ouvrir le terminal Web

Pour ouvrir le terminal web, vous devez d’abord vous y connecter, ce qui déploie un pod de terminal web. Cliquez sur Démarrer le terminal web pour commencer à ouvrir la connexion. Pendant l’ouverture de la connexion, les options de la page du terminal web sont désactivées.

Les options de la page du terminal web sont désactivées pendant l'ouverture de la connexion au terminal web.
Les options de la page du terminal web sont désactivées pendant l’ouverture de la connexion au terminal web.

Une fois le déploiement du pod de terminal web terminé, l’indication Le terminal web s’exécute apparaît au-dessus de la liste d’autorisation. Cliquez sur Ouvrir le terminal web pour ouvrir le terminal web dans un nouvel onglet de votre navigateur.

Ouvrez le terminal web.
Ouvrez le terminal web.

Il se peut que la page Démarrer le terminal web s’affiche pendant le chargement du terminal. Une fois le terminal chargé, vous pouvez exécuter des commandes comme dans un terminal normal. Les commandes disponibles dépendent des exécutables présents dans votre application.

Nom d’utilisateur du terminal

Si votre application a été créée avec un Nixpack (Utiliser Nixpacks pour configurer l’image du conteneur dans l’étape Environnement de construction), le nom d’utilisateur dans le terminal sera généralement « root ». Kinsta propose Nixpacks, un projet open source maintenu par Railway, comme l’une des options permettant de déterminer automatiquement le langage et de créer un conteneur pour votre application en fonction de votre dépot.

Si votre application a été créée avec un Buildpack (Utilisez Buildpacks pour définir l’image du conteneur dans l’étape Construire l’environnement), le nom d’utilisateur dans le terminal peut être « heroku ». Kinsta propose Buildpacks, un projet open source maintenu par Heroku, comme l’une des options pour déterminer automatiquement le langage et créer un conteneur pour votre application sur la base de votre dépot. Cela peut se reporter sur le terminal web.

Si votre application a été créée avec un Dockerfile (Utilisez Dockerfile pour configurer l’image du conteneur dans l’étape Construire l’environnement), le nom d’utilisateur dans le terminal sera généralement « root », mais cela dépend de la façon dont votre Dockerfile est configuré.

Arrêter et fermer le terminal web

Lorsque vous avez fini de travailler dans le terminal, fermez l’onglet dans votre navigateur pour fermer la connexion au terminal web. La fermeture de l’onglet n’arrête pas le terminal, mais si vous voulez l’ouvrir à nouveau, vous devrez cliquer sur Ouvrir le terminal web, attendre environ 30 secondes, et rafraîchir le nouvel onglet pour voir à nouveau le terminal.

Pour arrêter le terminal web, cliquez sur Stopper le terminal web.

Lorsque le terminal est en cours d’exécution, vous ne pouvez pas modifier la liste d’autorisations IP. Si vous devez la modifier, arrêtez le terminal, apportez vos modifications à la liste d’autorisations et ouvrez à nouveau le terminal.

Si la connexion au terminal web est créée mais n’est pas ouverte, elle s’arrêtera automatiquement au bout de 24 heures.

Répertoires binaires de Nixpacks

Avec Nixpacks, les répertoires binaires peuvent différer des répertoires binaires par défaut pour le langage de l’application. Le tableau ci-dessous affiche les répertoires binaires utilisés pour certains des langages les plus courants :

LanguageRépertoire
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 n’a pas de chemin binaire spécifique par défaut comme certains autres langages compilés. Quand vous compilez un programme Scala, il génère du bytecode qui s’utilise sur la machine virtuelle Java (JVM).

Les classes Scala compilées sont généralement stockées dans une structure de répertoire qui reflète la structure de paquetage de votre code. Cette structure est similaire à celle des classes Java. Par défaut, quand vous compilez un fichier source Scala, les fichiers .class compilés sont placés dans le même répertoire que le code source (dans une structure de sous-répertoire basée sur les déclarations de paquetage).

Si nécessaire, vous pouvez installer les outils d’exécution de Scala à l’aide d’un Dockerfile au lieu d’utiliser un Nixpack.

PHP/nix/var/nix/profiles/default/bin/php
GoGo n’a pas de chemin binaire spécifique par défaut comme certains autres langages compilés. Quand vous compilez un programme Go, l’exécutable binaire résultant est généralement placé dans le même répertoire que votre code source par défaut.

Si nécessaire, vous pouvez installer les outils d’exécution de Go à l’aide d’un Dockerfile au lieu d’utiliser un Nixpack.

Répertoires binaires des Buildpacks

Quand vous ajoutez une application dans MyKinsta à l’aide de Buildpacks, les répertoires binaires peuvent différer des répertoires binaires par défaut pour le langage de l’application. Le tableau ci-dessous affiche les répertoires binaires utilisés pour chaque langage de buildpack :

LanguageRépertoire
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 n’a pas de chemin binaire spécifique par défaut comme certains autres langages compilés. Quand vous compilez un programme Scala, il génère du bytecode qui s’utilise sur la machine virtuelle Java (JVM).

Les classes Scala compilées sont généralement stockées dans une structure de répertoire qui reflète la structure de paquetage de votre code. Cette structure est similaire à celle des classes Java. Par défaut, quand vous compilez un fichier source Scala, les fichiers .class compilés sont placés dans le même répertoire que le code source (dans une structure de sous-répertoire basée sur les déclarations de paquetage).

Si nécessaire, vous pouvez installer les outils d’exécution de Scala en utilisant un Dockerfile au lieu d’un buildpack.

PHP/workspace/.heroku/php/bin/php
GoGo n’a pas de chemin binaire spécifique par défaut comme certains autres langages compilés. Quand vous compilez un programme Go, l’exécutable binaire résultant est généralement placé dans le même répertoire que votre code source par défaut.

Si nécessaire, vous pouvez installer les outils d’exécution de Go en utilisant un Dockerfile au lieu d’un buildpack.

Résolution des problèmes

  • Lorsque vous ouvrez le terminal web, si vous voyez une page Erreur 1016 – DNS d’origine au lieu de l’écran du terminal, cela est dû à un léger retard dans la propagation du DNS. Attendez une minute et actualisez la page jusqu’à ce que vous voyiez l’écran du terminal. Si le problème persiste au-delà de quelques minutes, contactez notre équipe de support.
  • Si vous voyez une erreur 403 : Interdit lorsque vous ouvrez le terminal web, cela signifie que votre adresse IP n’est pas dans la liste d’autorisation. Arrêtez le terminal web, ajoutez votre adresse IP et redémarrez le terminal web.
  • Une erreur similaire à l’erreur ERRO[0000] exec failed indique qu’il manque le paquet shell au conteneur. Vous devez ajouter ce paquet à votre conteneur pour pouvoir exécuter le terminal web.

    ERRO[0000] exec failed : container_linux.go:425 : starting container process caused : exec : « bash » : executable file not found in $PATH
    la commande s’est terminée avec le code de sortie 1

Cet article vous a été utile ?