gpt4 book ai didi

r - 使用 ADD=Shiny 添加 shiny server 和 rocker verse image

转载 作者:行者123 更新时间:2023-12-04 03:42:55 25 4
gpt4 key购买 nike

Documentation for rocker/rstudio docker container .

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

docker 文件:

FROM rocker/tidyverse:latest

docker 组成:

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 登录屏幕。到目前为止一切顺利。

我想根据文档向同一个容器添加光泽(而不是使用单独的光泽图像)。

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

Add shiny server on start up with e ADD=shiny

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

shiny server is now running on localhost:3838 and RStudio on 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 我再次看到 rstudio 登录页面位于本地主机:8787。但是,如果我转到 localhost:3838,我会看到 Firefox 的“连接已重置”页面。看起来什么都没有。

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

最佳答案

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

我设法通过将该脚本注入(inject) rocker/tidyverse:latest 来让事情正常进行,下面是你如何做到这一点。将以下内容保存为名为 add 的文件:

#!/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

关于r - 使用 ADD=Shiny 添加 shiny server 和 rocker verse image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65646697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com