为 Rstudio 安装包 Docker

Installing packages for Rstudio Docker

我正在尝试使用 Rstudio docker 在 DigitalOcean 服务器上使用 Rstudio。由于我在 linux 服务器方面的经验有限,这对我来说有点挑战。

我可以启动 Rstudio 并且 运行:

docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE rocker/hadleyverse

但是,我希望能够在不使用服务器时关闭服务器并将其保存到快照中,而不必每次都重新安装软件包。

使用 docker documentation on updating an image,我能够创建一个容器,在该容器上安装包,然后提交更改:

docker run -t -i rocker/hadleyverse /bin/bash
install.r randomForest
exit
docker commit \<CONTAINER_ID> michael91/ms:v1

但是,一旦我提交,我就无法 运行 正确地更新图像。我尝试 运行 如下:

docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE michael91/ms:v1

当我这样做时,Rstudio 服务器未激活,就像我 运行 原始 rocker/hadleyverse 版本时一样。我尝试过在安装和不安装软件包的情况下进行提交;无论哪种方式,它似乎都不起作用。显然我做错了什么,但我不确定是什么。如果有人能给我一些指导,我将不胜感激。

编辑:非常感谢 VonC;成功了。

可能是因为新提交的图像丢失了 rocker-org/rocker/rstudio/Dockerfile#L58 中存在的 CMD 指令。

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d /supervisord.conf"]

尝试创建一个新的 Dockerfile:

FROM michael91/ms:v1
## Add RStudio binaries to PATH
ENV PATH /usr/lib/rstudio-server/bin/:$PATH 
ENV LANG en_US.UTF-8
EXPOSE 8787

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

并将其构建为 michael91/ms:v2

然后看看 v2 在激活 RStudio 时比 v1 更好:

docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE michael91/ms:v2