如何使用Singularity 3使用可写文件系统构建/运行容器?

时间:2019-01-01 13:00:49

标签: docker rstudio-server singularity-container

我正在使用Singularity 3.0,并尝试从DockerHub中提取容器映像并在大学集群上运行它。我跟随this recipe开始使用。

singularity pull --name rstudio-3.5.2.sif docker://rocker/rstudio:3.5.2
singularity exec --bind example-project-1/:/home/rstudio/ rstudio-3.5.2.sif rserver --www-port 8787

容器过程开始,但是当我尝试通过浏览器连接时,出现以下错误日志。

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

似乎容器中的文件系统是只读的。如何构建(或运行)容器以使容器的文件系统可写?

更新

我能够按如下方式在大学集群上运行RStudio服务器。

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

这似乎可行,因为奇点自动将主机上的用户主目录自动安装到容器中,并且在上面我将主目录重新定义为my-project-directory

但是由于文件系统不可写,我仍然无法将R软件包安装到容器中。

> 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

最初的问题仍然存在:如何创建具有可写文件系统的Singularity 3. *容器?如果不可能,请解释为什么。

3 个答案:

答案 0 :(得分:2)

阅读此https://developer.roblox.com/en-us/articles/GUI-Animations,显然可以解决有关软件包安装的问题:

在主目录中创建一个<div class="imagecontainer"> <p class="mainp">Looking to maximize the <br>productivity ?</p> <button class="appstartbtn" type="submit">Try For Free</button> </div>文件,并按如下所示设置.Renviron

R_LIBS_USER

这为我解决了软件包安装问题。

答案 1 :(得分:0)

在您的容器中尝试--writable标志:

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

答案 2 :(得分:0)

您可以使用--sandbox选项创建沙箱文件夹。

您也可以为奇点2.5创建一个虚拟机/流浪者