使用 docker 运行 Rstudio-connect

Vin*_*der 5 ubuntu r rstudio docker

我尝试使用 Docker 安装 Rstudio-connect。我尝试使用 ubuntu、centos 和 Rocker/tidyverse 基本图像。没有成功...

这是我制作的 Dockerfile。

FROM ubuntu
RUN apt-get update
RUN apt-get install -y gdebi-core
RUN apt-get install -y build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev
RUN apt-get install -y r-base
RUN apt-get autoclean
RUN apt-get clean
RUN apt-get install -y texlive-full
RUN apt-get install -y libgmp10-dev  libgsl0-dev    libnetcdf-dev   netcdf-bin  libdigest-hmac-perl  libgmp-dev   libgmp3-dev  libgl1-mesa-dev   libglu1-$
RUN apt-get install -y  net-tools
RUN apt-get install -y procps

RUN gdebi -n rstudio-connect.deb
COPY rstudio-connect-*-amd64.deb rstudio-connect.deb
EXPOSE 3939
Run Code Online (Sandbox Code Playgroud)

使用此容器,我无法运行 rstudio connect。我有这个错误:“没有检测到已知的初始化系统。” 从这个脚本 /var/lib/dpkg/info/rstudio-connect.postinst 无论如何我尝试手动启动

    systemctl enable rstudio-connect.service
    systemctl stop rstudio-connect.service
    systemctl start rstudio-connect.service
    cp /opt/rstudio-connect/packaging/init/upstart/rstudio-connect.conf /etc/init/rstudio-connect.conf
Run Code Online (Sandbox Code Playgroud)

但我有这个错误:

> root@f5a1b89e68f2:/# systemctl enable rstudio-connect.service Created
symlink
> /etc/systemd/system/multi-user.target.wants/rstudio-connect.service,
pointing to /lib/systemd/system/rstudio-connect.service.
> root@f5a1b89e68f2:/# systemctl start rstudio-connect.service Failed to
connect to bus: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我直接运行 ./connect

这是我得到的:

> root@f5a1b89e68f2:/opt/rstudio-connect/bin# ./connect --config /etc/rstudio-connect/rstudio-connect.gcfg
2017/08/28 12:14:14 Resource limits: {"nofile":{"soft":1048576,"hard":1048576}}
2017/08/28 12:14:14 Starting RStudio Connect v1.5.4-13
2017/08/28 12:14:14 Loading server configuration from /etc/rstudio-connect/rstudio-connect.gcfg
2017/08/28 12:14:14 Creating data directory: /var/lib/rstudio-connect
2017/08/28 12:14:14 Creating database directory: /var/lib/rstudio-connect/db
2017/08/28 12:14:14 Creating metrics directory: /var/lib/rstudio-connect/metrics/rrd
2017/08/28 12:14:14 Creating applications directory: /var/lib/rstudio-connect/apps
2017/08/28 12:14:14 Creating application bookmarks directory: /var/lib/rstudio-connect/bookmarks
2017/08/28 12:14:14 Creating document output directory: /var/lib/rstudio-connect/reports
2017/08/28 12:14:14 Creating document customization directory: /var/lib/rstudio-connect/overrides
2017/08/28 12:14:14 Creating manual document customization directory: /var/lib/rstudio-connect/overrides/manual
2017/08/28 12:14:14 Creating document variant customizations directory: /var/lib/rstudio-connect/overrides/variant
2017/08/28 12:14:14 Creating R library directory: /var/lib/rstudio-connect/R
2017/08/28 12:14:14 Checking ownership and permissions for the R library directory: /var/lib/rstudio-connect/R
2017/08/28 12:14:14 Creating Packrat cache directory: /var/lib/rstudio-connect/packrat
2017/08/28 12:14:14 Checking ownership and permissions for the Packrat cache directory: /var/lib/rstudio-connect/packrat
2017/08/28 12:14:14 Creating jobs directory: /var/lib/rstudio-connect/jobs
2017/08/28 12:14:14 Creating jobs-spool directory: /var/lib/rstudio-connect/jobs-spool
2017/08/28 12:14:14 Creating bundle directory: /var/lib/rstudio-connect/bundles
2017/08/28 12:14:14 Creating base bind mount directory: /opt/rstudio-connect/mnt
2017/08/28 12:14:14 Creating application bind mount directory: /opt/rstudio-connect/mnt/app
2017/08/28 12:14:14 Creating application bookmarks bind mount directory: /opt/rstudio-connect/mnt/bookmarks
2017/08/28 12:14:14 Creating document output bind mount directory: /opt/rstudio-connect/mnt/report
2017/08/28 12:14:14 Creating R library bind mount directory: /opt/rstudio-connect/mnt/R
2017/08/28 12:14:14 Creating packrat bind mount directory: /opt/rstudio-connect/mnt/packrat
2017/08/28 12:14:14 Creating source package bind mount directory: /opt/rstudio-connect/mnt/source-packages
2017/08/28 12:14:14 Creating empty bind mount directory: /opt/rstudio-connect/mnt/empty
2017/08/28 12:14:14 Using HTTP access log: /var/log/rstudio-connect.access.log
2017/08/28 12:14:14 Starting licensing...
2017/08/28 12:14:15 Could not detect R at /usr/lib/R/bin/R: Could not run R as rstudio-connect; exit status 1; received output: '28 Aug 2017 12:14:15 [rsandbox] ERROR system error 1 (Operation not permitted); OCCURRED AT: int main(int, char* const*) /home/ubuntu/rstudio-pro/src/cpp/server/sandbox/SandboxMain.cpp:136; LOGGED FROM: int main(int, char* const*) /home/ubuntu/rstudio-pro/src/cpp/server/sandbox/SandboxMain.cpp:137
'
2017/08/28 12:14:15 Could not detect R at /usr/bin/R: Could not run R as rstudio-connect; exit status 1; received output: '28 Aug 2017 12:14:15 [rsandbox] ERROR system error 1 (Operation not permitted); OCCURRED AT: int main(int, char* const*) /home/ubuntu/rstudio-pro/src/cpp/server/sandbox/SandboxMain.cpp:136; LOGGED FROM: int main(int, char* const*) /home/ubuntu/rstudio-pro/src/cpp/server/sandbox/SandboxMain.cpp:137
'
2017/08/28 12:14:15 Error: Unable to use R on this system: Could not locate an R installation
Run Code Online (Sandbox Code Playgroud)

但是 R 存在,并且 rstudio-connect 用户可以运行它!

任何的想法 ?

问候

Jef*_*len 4

Connect 使用沙箱,该沙箱使用与 Docker 相同的机制来隐藏可执行用户代码的某些目录。您需要在“特权”模式下运行容器。尝试做docker run --privileged ...