【问题标题】:Add shiny server with ADD=Shiny with rocker verse image使用 ADD=Shiny 和摇滚诗图像添加闪亮的服务器
【发布时间】:2021-04-15 04:56:03
【问题描述】:

Documentation for rocker/rstudio docker container.

我可以使用 Docker 在 rstudio 中启动并运行,并在目录中设置了以下内容:

Dockerfile:

FROM rocker/tidyverse:latest

码头工人撰写:

version: "3.5"
services:
  ide-rstudio:
    build:
      context: .
    ports:
      - 8787:8787
    environment:
      ROOT: "TRUE"
      PASSWORD: test

现在,如果我在终端中输入此目录并键入:docker-compose build,然后是 docker-compose up -d,然后导航到 localhost:8787,我会看到 rstudio 登录屏幕。到目前为止一切顺利。

我想根据文档将闪亮添加到同一个容器(而不是使用单独的闪亮图像)。

在我链接到的文档顶部它说:

使用 e ADD=shiny 在启动时添加闪亮的服务器

docker run -d -p 3838:3838 -p 8787:8787 -e ADD=shiny -e PASSWORD=yourpasswordhere rocker/rstudio

闪亮的服务器现在在 localhost:3838 上运行,RStudio 在 localhost:8787 上运行。

由于我使用的是 docker-compose,我将 docker-compose 文件更新为:

version: "3.5"
services:
  ide-rstudio:
    build:
      context: .
    ports:
      - 8787:8787
      - 3838:3838
    environment:
      ROOT: "TRUE"
      ADD: "shiny"
      PASSWORD: test

现在,当我像以前一样进入终端并输入:docker-compose build,然后是 docker-compose up -d,我再次在 localhost:8787 看到 rstudio 登录页面。但是,如果我转到 localhost:3838,我会看到 Firefox 的“连接已重置”页面。好像什么都没有。

如何按照说明为我的容器添加光泽?

【问题讨论】:

    标签: r docker shiny docker-compose rstudio


    【解决方案1】:

    该图像似乎缺少闪亮的安装程序。如果您在没有-d 并使用rocker/rstudio:3.2.0 图像的情况下运行相同的撰写文件,您将在日志中看到shiny 正在安装。它无法为我安装(缺少文件/usr/local/lib/R/site-library/littler/examples/install2.r 存在问题),但我找到了安装该东西的脚本。由于某种原因,rocker/tidyverse:latest 中不存在该脚本(我不知道为什么,您最好询问维护者)并且ADD=shiny 没有效果。

    我设法通过将该脚本注入rocker/tidyverse:latest 来使事情正常进行,您可以这样做。将以下内容另存为名为@9​​87654328@的文件:

    #!/usr/bin/with-contenv bash
    
    ADD=${ADD:=none}
    
    ## A script to add shiny to an rstudio-based rocker image.
    
    if [ "$ADD" == "shiny" ]; then
      echo "Adding shiny server to container..."
      apt-get update && apt-get -y install \
        gdebi-core \
        libxt-dev && \
        wget --no-verbose https://s3.amazonaws.com/rstudio-shiny-server-os-build/ubuntu-12.04/x86_64/VERSION -O "version.txt" && \
        VERSION=$(cat version.txt)  && \
        wget --no-verbose "https://s3.amazonaws.com/rstudio-shiny-server-os-build/ubuntu-12.04/x86_64/shiny-server-$VERSION-amd64.deb" -O ss-latest.deb && \
        gdebi -n ss-latest.deb && \
        rm -f version.txt ss-latest.deb && \
        install2.r -e --skipinstalled shiny rmarkdown && \
        cp -R /usr/local/lib/R/site-library/shiny/examples/* /srv/shiny-server/ && \
        rm -rf /var/lib/apt/lists/* && \
        mkdir -p /var/log/shiny-server && \
        chown shiny.shiny /var/log/shiny-server && \
        mkdir -p /etc/services.d/shiny-server && \
        cd /etc/services.d/shiny-server && \
        echo '#!/bin/bash' > run && echo 'exec shiny-server > /var/log/shiny-server.log' >> run && \
        chmod +x run && \
        adduser rstudio shiny && \
        cd /
    fi
    
    if [ $"$ADD" == "none" ]; then
           echo "Nothing additional to add"
    fi
    

    然后将以下内容添加到您的Dockefile

    COPY add /etc/cont-init.d/add
    RUN chmod +x /etc/cont-init.d/add
    

    或在本地应用执行权限并在运行时挂载它。为此,请在本地运行以下命令:

    chmod +x add
    

    并将其添加到docker-compose.yml:

    services:
      ide-rstudio:
        volumes:   # this line and below
        - ./add:/etc/cont-init.d/add
    

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 2016-05-23
      • 2016-10-26
      • 2021-12-17
      • 2019-11-18
      • 2021-11-07
      • 2021-03-10
      • 2018-04-21
      • 2018-01-11
      相关资源
      最近更新 更多