闪亮的应用程序Docker容器无法在浏览器中启动

时间:2019-06-04 16:46:34

标签: r docker shiny

我正在尝试在Docker容器中运行闪亮的应用程序。 我的应用文件夹结构如下:

myApp (directory)
    -app (directory)
        --ui.R
        --server.R
        --global.R
        --style.css
        --mydata.xlsx
        --mydata2.rds
        --functions.R (contains functions I use in app)
    -Dockerfile
    -shiny-server.conf
    -shiny-server.sh

我可以进入目录myApp,并通过执行runApp('app')在本地运行。我的闪亮应用完美运行。

但是,当我尝试构建映像并运行它时,它给了我错误。

docker build -t myshinyapp_obs .
docker run -p 80:80 myshinyapp_obs 

The application failed to start.
The application exited during initialization.

泊坞窗映像构建过程似乎很好。 在docker上运行时,出现错误。

有趣的是,当我只是从闪亮的库中复制任何应用程序并将ui.Rserver.R文件放在app文件夹下时,它就可以正常工作!

我的问题是为什么我的应用无法正常工作?鉴于事实:

  1. 我的应用在本地完美运行
  2. 将闪亮的示例从库复制到应用程序文件夹后,该示例应用程序可以正常工作。

那怎么会发生?我想不明白。花费了数小时试图使其正常运行,但失败了。

下面是我的Dockfile:

# Install R version 3.6
FROM r-base:3.6.0

# Install Ubuntu packages
RUN apt-get update && apt-get install -y \
    sudo \
    gdebi-core \
    pandoc \
    pandoc-citeproc \
    libcurl4-gnutls-dev \
    libcairo2-dev/unstable \
    libxt-dev \
    libssl-dev

# Download and install ShinyServer (latest version)
RUN 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

# Install R packages that are required
# TODO: add further package if you need!
RUN R -e "install.packages(c('devtools','readxl','tidyverse','rlang','shiny','shinythemes', 'DT'), repos='http://cran.rstudio.com/')"

# Copy configuration files into the Docker image
COPY shiny-server.conf  /etc/shiny-server/shiny-server.conf
COPY /app /srv/shiny-server/

# Make the ShinyApp available at port 80
EXPOSE 80

# Copy further configuration files into the Docker image
COPY shiny-server.sh /usr/bin/shiny-server.sh

CMD ["/usr/bin/shiny-server.sh"]

0 个答案:

没有答案