« ShinyProxy » : différence entre les versions

mAucun résumé des modifications
 
(Une version intermédiaire par un autre utilisateur non affichée)
Ligne 170 : Ligne 170 :


== Configuration de l'application sur le serveur ShinyProxy de production ==
== Configuration de l'application sur le serveur ShinyProxy de production ==
La configuration de l'application se fait dans le '''fichier shinyapps.yml sur le dépôt privé''' https://github.com/EVS-GIS/isig-apps (un compte GitHub associé à l'organisation EVS-GIS est nécessaire). La branche prod de ce dépôt est synchronisée avec le serveur. Une erreur dans cette configuration pouvant potentiellement tout faire planter, cette branche prod est protégée et nécessite que vous fassiez un '''pull request''' validé par Samuel lorsque vous voulez mettre à jour cette configuration.
La configuration initiale de l'application doit être faite par l'administrateur du serveur.


L'intégralité des paramètres qu'il est possible de configurer est disponible [https://www.shinyproxy.io/documentation/configuration/#apps ici]. Voici les principaux que je vous recommande de configurer : <syntaxhighlight lang="yaml">
== Mise à jour d'une appli ==
    - id: mapdoapp # Identifiant unique de l'application
La mise à jour d'une appli sur le serveur de prod ne nécessite généralement pas de modifier la configuration. Il suffit de '''pousser la nouvelle version de votre image sur votre registre''' (avec le tag latest), puis de '''lancer le job ''Mise à jour d'une application en production sous ShinyProxy'' sur Jenkins''' pour forcer le redémarrage des containers d'attente déjà lancés. Si l'intégration continue a été correctement configurée, le job Jenkins de mise à jour devrait se lancer automatiquement dès que la nouvelle version de l'image arrive sur le registre.
      display-name: "Mapd'O App" # Nom d'affichage
      container-image: ghcr.io/evs-gis/mapdoapp:latest # Image Docker à utiliser (bien utiliser un tag "latest" pour faciliter la mise à jour)
== Debug des applis en prod ==
      port: 3838 # Le port à écouter dans le container (dépend du port choisi au moment de la création de l'image)
 
      minimum-seats-available: 3 # Le nombre de containers en attente d'utilisateur que ShinyProxy doit assurer
 
      container-env: # Définitions de variables d'environnement
Pour accéder aux logs des applications sur le serveur de prod, se connecter en ssh aux archives:<syntaxhighlight lang="bash">
        MA_VARIABLE_1: valeur1
ssh archives.evs.ens-lyon.fr
        MA_VARIABLE_2: valeur2
</syntaxhighlight>Puis afficher le contenu des logs:<syntaxhighlight lang="bash">
</syntaxhighlight>N'hésitez pas à demander mon aide pour cette étape qui ne sera généralement à faire qu'une seule fois au moment du premier déploiement de l'appli. Dans certains cas où vous prévoyez un pic d'affluence sur votre appli (un cours ou une conférence par exemple), vous pouvez ajuster le <code>minimum-seats-available</code> pour éviter du temps de chargement à vos visiteurs.
tail -n 10 /data/echanges/ShinyProxyLogs/shinyapps-stdout.log
# récupérer les 10 (option -n) dernières lignes de stdout
 
tail -n 10 -f /data/echanges/ShinyProxyLogs/shinyapps-stderr.log
# voir stderr défiler en temps réel (option -f)


== Mise à jour d'une appli ==
tail -n 10 /data/echanges/ShinyProxyLogs/shinyapps-std*.log
La mise à jour d'une appli sur le serveur de prod ne nécessite généralement pas de modifier le fichier de configuration (décrit ci-dessus). Il suffit de '''pousser la nouvelle version de votre image sur votre registre''' (avec le tag latest), puis de '''lancer le job ''Mise à jour d'une application en production sous ShinyProxy'' sur Jenkins''' pour forcer le redémarrage des containers d'attente déjà lancés.
# voir les 10 dernières lignes de tous les logs (standard et erreur)
 
tail -n 100 ...
# pour les 100 dernières lignes, etc
</syntaxhighlight>Tous les logs (quelque soit l'appli) apparaissent. Pour chercher spécifiquement les lignes correspondant à une appli précise (par exemple mapdoapp):<syntaxhighlight lang="bash">
grep mapdoapp /data/echanges/ShinyProxyLogs/shinyapps-std*.log
# N'affiche que les lignes qui concernent mapdoapp
</syntaxhighlight>On peut aussi combiner défilement en live + grep<syntaxhighlight lang="bash">
tail -f /data/echanges/ShinyProxyLogs/shinyapps-std*.log | grep mapdoapp
</syntaxhighlight>
[[Catégorie:Tutoriel]]
[[Catégorie:Tutoriel]]