【问题标题】:Running Rstudio-connect using docker使用 docker 运行 Rstudio-connect
【发布时间】:2018-02-05 17:08:02
【问题描述】:

我尝试使用 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

使用此容器,我无法运行 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

但我有这个错误:

> 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

如果我直接运行 ./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

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

有什么想法吗?

问候

【问题讨论】:

    标签: r ubuntu docker rstudio


    【解决方案1】:

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

    【讨论】:

    • documentation 提到 --cap-add=SYS_ADMIN 也应该可以工作,但我看到“无法启动沙盒”错误。我错过了什么?
    猜你喜欢
    • 2021-11-08
    • 2022-08-16
    • 2021-06-24
    • 2014-10-09
    • 2015-04-02
    • 2020-04-20
    • 2015-02-18
    • 2021-04-18
    • 2021-09-26
    相关资源
    最近更新 更多