2
votes

Comment créer / exécuter un conteneur avec un système de fichiers inscriptible en utilisant Singularity 3?

J'utilise Singularity 3.0 et j'essaie d'extraire une image de conteneur de DockerHub et de l'exécuter sur un cluster universitaire. J'ai suivi cette recette pour commencer.

> install.packages(c("plyr", "dply", "tidyr", "ggplot2"))
Installing packages into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) cancel
Error in install.packages : unable to install packages

Le processus du conteneur démarre mais lorsque j'essaie de me connecter via un navigateur, j'obtiens le journal des erreurs suivant.

singularity exec --home my-project-directory rstudio-3.5.2.sif rserver --www-port 8787

Il semble que le système de fichiers dans le conteneur est uniquement en lecture seule . Comment créer (ou exécuter) le conteneur de telle sorte que le système de fichiers du conteneur soit accessible en écriture?

Update:

J'ai pu faire fonctionner le serveur RStudio sur le cluster universitaire comme suit.

01 Jan 2019 12:07:22 [rsession-pughdr] ERROR system error 30 (Read-only file system) [path=/home/pughdr/.rstudio, target-dir=]; OCCURRED AT: rstudio::core::Error rstudio::core::FilePath::createDirectory(const string&) const /home/ubuntu/rstudio/src/cpp/core/FilePath.cpp:846; LOGGED FROM: rstudio::core::FilePath rstudio::core::system::userSettingsPath(const rstudio::core::FilePath&, const string&) /home/ubuntu/rstudio/src/cpp/core/system/PosixSystem.cpp:486
01 Jan 2019 12:07:22 [rsession-pughdr] ERROR system error 30 (Read-only file system) [path=/home/pughdr/.rstudio, target-dir=]; OCCURRED AT: rstudio::core::Error rstudio::core::FilePath::createDirectory(const string&) const /home/ubuntu/rstudio/src/cpp/core/FilePath.cpp:846; LOGGED FROM: int main(int, char* const*) /home/ubuntu/rstudio/src/cpp/session/SessionMain.cpp:1689


0 commentaires

3 Réponses :


0
votes

essayez - un indicateur inscriptible dans votre conteneur:

singularity build --writable rstudio-3.5.2.sif docker://rocker/rstudio:3.5.2

singularity exec --writable --bind example-project-1/:/home/rstudio/ rstudio-3.5.2.sif rserver --www-port 8787


1 commentaires

L'indicateur --writable était obsolète dans Singularity 3.0 et nécessite les droits sudo (que je n'ai pas sur le cluster universitaire) pour Singularity 2.5.



0
votes

Vous pouvez créer un dossier sandbox avec l'option --sandbox.

Vous pouvez aussi probablement créer une machine virtuelle / vagrant pour la singularité 2.5


0 commentaires

2
votes

Lecture de cet article , il existe apparemment une solution au problème d'installation des packages:

Créez un fichier .Renviron dans votre répertoire personnel et définissez R_LIBS_USER comme suit:

< pre> XXX

Cela a résolu le problème d'installation de paquet pour moi.


0 commentaires