首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ADD=Shiny添加闪亮的服务器和摇滚诗句图像

使用ADD=Shiny添加闪亮的服务器和摇滚诗句图像
EN

Stack Overflow用户
提问于 2021-01-09 19:21:02
回答 1查看 522关注 0票数 3

rocker/rstudio码头容器的文档

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

Dockerfile:

代码语言:javascript
复制
FROM rocker/tidyverse:latest

码头工人-组成:

代码语言:javascript
复制
version: "3.5"
services:
  ide-rstudio:
    build:
      context: .
    ports:
      - 8787:8787
    environment:
      ROOT: "TRUE"
      PASSWORD: test

现在,如果我在终端中输入这个dir并键入: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。

由于我使用的是坞-撰写文件,所以我更新了我的坞-撰写文件如下:

代码语言:javascript
复制
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‘connection I’页面。好像什么都没有。

根据说明,我怎样才能给我的容器添加光亮呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-14 14:39:01

这张图片似乎缺少了闪亮的安装程序。如果您不使用-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,我成功地完成了工作,下面是您可以这样做的方法。将以下内容保存为名为add的文件

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
COPY add /etc/cont-init.d/add
RUN chmod +x /etc/cont-init.d/add

或者在本地应用执行权限并在运行时挂载它。要做到这一点,在本地运行以下命令:

代码语言:javascript
复制
chmod +x add

并将其添加到docker-compose.yml

代码语言:javascript
复制
services:
  ide-rstudio:
    volumes:   # this line and below
    - ./add:/etc/cont-init.d/add
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65646697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档