2

我正在尝试为 Euler App 构建一个 dockerfile,以通过“ http://www.shinyproxy.io/deploying-apps/ ”测试 ShinyProxy

我正在使用该链接中的 dockerfile。

使用命令时sudo docker build -t openanalytics/shinyproxy-template .

构建处理时出现错误:

Error: unexpected end of input
Execution halted
The command '/bin/sh -c R -e "install.packages(c('shiny', 'rmarkdown', repos='https://cloud.r-project.org/')" ' returned a non-zero code: 1.

我很好奇为什么会收到此错误,因为这是来自 dockerfile 的完全相同的命令。

我能做些什么来解决这个问题。

-谢谢

4

1 回答 1

2

仔细查看 R install library 行的语法,您会发现它缺少右括号

我只是手动修复了该语法,它正确地构建了该步骤

正确的语法

RUN R -e "install.packages(c('shiny', 'rmarkdown'), repos='https://cloud.r-project.org/')"

将其构建为

docker build --tag r_base .

注意 - 随着 docker build 的进行,它稍后会尝试失败

COPY euler /root/euler

lstat euler: no such file or directory

要解决此问题,只需将所有 Dockefile 行注释掉,然后将底线替换为

CMD ["/bin/bash"]

然后它将正确构建并允许您登录到正在运行的容器以进一步排除故障

docker run -ti r_base bash

我对 R 一无所知,所以将它留给读者来修复 euler COPY ...显然,在发出 docker build 命令之前,您必须将 euler 放在本地目录中

...现在在您发出上述 docker run 命令之后,然后从其内部到容器提示问题

cd /
find . | grep  Rprofile.site

./usr/lib/R/etc/Rprofile.site

看起来不错,所以请在 Dockerfile 中注释掉它的 COPY

于 2016-11-16T18:02:46.110 回答