Skip to content

Serveur ShinyR avec applications personnalisées

Préparation du dépôt personnalisé

  • Copiez ce dépôt :
    • git clone https://plmlab.math.cnrs.fr/plmshift/shiny-custom.git et poussez-le sur un serveur GIT de votre choix (PLMlab par exemple)
    • ou bien en cliquant Fork sur la page d'accueil de ce dépôt
  • Dans le dossier ShinyApps, éditez les fichiers ui.R et server.R
  • Dans le fichier requirements.txt, listez les packages R à installer (ceux qui sont appelés via library ou require dans vos fichiers R)

Déploiement de votre instance ShinyR

  • Créez un projet
  • Instanciez une application Shiny R depuis le catalogue en choisissant Shiny R Application Server
  • Renseignez l'URL de votre dépôt shiny-custom
    • si votre dépôt est public ou privé, l'URL sera de la forme : https://plmlab.math.cnrs.fr/votre_groupe/shiny-custom.git
    • dans le cas d'un dépôt privé, l'URL peut aussi avoir la forme : git@plmlab.math.cnrs.fr:votre_groupe/shiny-custom.git1
  • Patientez et ensuite connectez-vous sur l'URL de votre déploiement
  • Le dossier /opt/app-root/src est le point de montage d'un volume persistant contenant :
  • le dossier ShinyApps : votre application
  • le dossier logs : les logs de votre application
  • Le dossier /opt/app-root/R vos packages supplémentaires (voir ci-dessous)

Si vous choisissez un nom spécifique pour le paramètre APPLICATION_NAME, vous pouvez installer plusieurs instances ShinyR, basées sur différents dépôts git dans un même projet PLMShift. Dans ce cas, vous pourriez devoir contacter le support de la PLM car le quota par défaut associé à un projet peut être insuffisant.

Cycle de vie de votre application

Installation de packages R supplémentaires

L'installation de packages se fera dans le dossier /opt/app-root/R.

Il vous suffit de créer un fichier nommé requirements.txt à la racine de votre dépôt contenant les packages à installer (un nom par ligne), comme par exemple :

shinydashboard
ggplot2
dplyr
monlogingithub/monrepogithub

(monlogingithub/monrepogithub correspond à un package sur un dépôt GIT distant)

Ensuite, Relancez la fabrication de votre image

Vous pouvez aussi installer des packages en live. Ce n'est pas recommandé car ces ajouts disparaîtrons au redémarrage de votre application (Pod). Cela peut être utile pour le développement.

connectez-vous au Pod :

oc get pods
oc rsh shiny-2-asce44 (selon ce que donne oc get pods)

au prompt du Shell :

sh-4.2$ R
> install.packages('mon_package')
> Ctrl D

Configuration du Build

Dans le cas où l'installation des packages requiert de l'espace disque, mémoire et de la CPU (en général si cela nécessite de la compilation en C ou Fortran par exemple), ajustez les variables BUILD_MEMORY_REQUESTet BUILD_CPU_REQUEST. Les valeurs ne peuvent pas dépasser le quota alloué à votre projet.

Vous pouvez aussi changer le nom du dépôt CRAN dans le cas où ce dernier est indisponible.

Build incrémental

Chaque Build reprend les packages installés lors du précédent Build, ceci afin de ne pas avoir à réinstaller les packages à chaque fois que vous modifiez votre application dans le dossier ShinyApps.


  1. dans le cas d'un dépôt privé, vous devez suivre les indications suivantes pour utiliser une clé SSH ou bien un Token de déploiement