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