Gitlab

Accès distant aux conteneurs

Le workflow met à disposition du développeur des accès spécifiques aux conteneurs en utilisant une connexion SSH, afin de surveiller les services de l’application conteneurisée après son déploiement sur les environnements de préprod ou de production.

⚠️ C’est la clé publique qui sert à pousser le code dans les dépôts de Gitlab qui est utilisée pour l’accès aux conteneurs. Elle doit être uploadée dans votre profil Gitlab (User settings -> SSH Keys).

Surveiller le statut des services

Cette commande récapitule l’état des status des conteneurs utilisés par l’application, vus par compose sur le serveur de production:

ssh -t <myapp>@<my-host>.com compose ps

Cette commande affiche une sortie du type:

         Name                 Command        State    Ports  
-------------------------------------------------------------
testdemo_app_1           python -m app.web   Up      9000/tcp

Accéder aux conteneurs

Se connecter au conteneur de l’application

Exemple pour accéder en bash au conteneur du service “app”:

ssh -t <myapp>@<my-host>.com exec app bash

Lancer une commande sur un des services

Exemple pour lister les fichiers dans le conteneur du service “app”:

ssh -t <myapp>@<my-host>.com exec app -- ls -l

Accéder aux volumes

Se connecter en sftp aux volumes utilisés par l’application

  • Exemple pour une connexion basique au volume :
sftp <myapp>@<my-host>.com
  • Exemple pour pousser un fichier dans un volume:
echo "put test ./data/volume/test" | sftp <myapp>@<my-host>.com
  • Exemple pour récupérer un fichier:
echo "get ./data/volume/test test" | sftp <myapp>@<my-host>.com

Logs des conteneurs

Surveiller les logs des services de l’application

Cette commande affiche la sortie standard STDOUT de tous les services définis dans le Docker compose du projet:

ssh -t <myapp>@<my-host>.com logs

Pour afficher la sortie d’un service en particulier, ajouter son nom dans la commande:

ssh -t <myapp>@<my-host>.com logs app

Récupérer l’historique des logs des conteneurs

Les logs d’un conteneur sont accessibles en sftp dans un volume spécifique qui lui est attaché. La temporalité de l’historique est sur 8 jours glissants.

  • Afficher la liste des logs disponibles:
echo "ls /logs" | sftp <myapp>@<my-host>.com
  • Récupérer les logs:
echo "get -r /logs/" | sftp <myapp>@<my-host>.com
Top