Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大型闪亮服务器docker映像大小_R_Docker_Shiny_Dockerfile - Fatal编程技术网

大型闪亮服务器docker映像大小

大型闪亮服务器docker映像大小,r,docker,shiny,dockerfile,R,Docker,Shiny,Dockerfile,目前,我正在将R笔记本电脑和闪亮的仪表板混合在一起,它们将在闪亮的服务器上提供服务。从Dockerfile中可以看出,我从一个rocker/Shining图像开始,并完成以下构建步骤: 从renv.lock文件安装所需的软件包 执行将负责呈现.Rmd文件的main.R,并将.html输出放在/reports文件夹中 复制servin的Shining server文件夹中的编织文档和闪亮的仪表板 复制服务器配置文件 删除临时文件(工作目录和下载的包) 暴露8080端口 现在,以这种方式构建的结果图

目前,我正在将R笔记本电脑和闪亮的仪表板混合在一起,它们将在闪亮的服务器上提供服务。从Dockerfile中可以看出,我从一个
rocker/Shining
图像开始,并完成以下构建步骤:

  • renv.lock
    文件安装所需的软件包
  • 执行将负责呈现.Rmd文件的
    main.R
    ,并将.html输出放在
    /reports
    文件夹中
  • 复制servin的
    Shining server
    文件夹中的编织文档和闪亮的仪表板
  • 复制服务器配置文件
  • 删除临时文件(工作目录和下载的包)
  • 暴露
    8080
    端口
  • 现在,以这种方式构建的结果图像重约1.79GB,这听起来比我预期的要高很多(基本图像只有约400mb)。
    我想知道我遗漏了什么(可能是层重复太多?),或者
    Dockerfile
    有什么问题

    项目文件夹结构:

    .
    ├── cool-report.Rproj
    ├── Dockerfile
    ├── R
    │   └── main.R
    ├── readme.md
    ├── renv
    │   ├── activate.R
    │   ├── library
    │   ├── settings.dcf
    │   └── staging
    ├── renv.lock
    ├── rmarkdown
    │   ├── area1.Rmd
    │   ├── area2.Rmd
    │   └── data
    │       ├── data_import_1.R
    │       └── data_import_2.R
    ├── shiny
    │   └── mtcars_example
    │       └── app.R
    └── shiny-server.conf
    
    Dockerfile:

    FROM rocker/shiny:latest
    
    COPY . /tmp
    WORKDIR /tmp
    
    RUN echo "options(renv.consent=TRUE)" >> .Rprofile
    
    # Install packages from renv
    RUN R -e "install.packages('remotes', repos = c(CRAN = 'https://cloud.r-project.org'))" \
      && R -e "remotes::install_github('rstudio/renv')" \
      && R -e "renv::restore(confirm = FALSE)"
    
    # Render report(s)
    RUN Rscript ./R/main.R
    
    # Copy reports and shiny dashboards
    RUN cp -r ./reports /srv/shiny-server/reports \
      && cp -r shiny/* /srv/shiny-server/reports
    
    WORKDIR /
    
    # Copy config files and server executable
    COPY shiny-server.conf /etc/shiny-server/shiny-server.conf
    
    # Cleanup temp files
    RUN rm -rf /tmp/*
    
    # Expose port as on shiny-server.conf
    EXPOSE 8080
    
    docker图像历史记录-H
    输出:

    andodet@t480s:~/code/study/cool-report$ docker image history -H d21975ad912d
    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
    d21975ad912d        About an hour ago   /bin/sh -c #(nop)  EXPOSE 8080                  0B
    11345fbe7c72        About an hour ago   /bin/sh -c rm -rf /tmp/*                        0B
    ce8b33984b85        About an hour ago   /bin/sh -c #(nop) COPY file:1d2d0c462c909cc4…   741B
    761bc2a982cd        About an hour ago   /bin/sh -c #(nop) WORKDIR /                     0B
    5aa2ae037138        About an hour ago   /bin/sh -c cp -r ./reports /srv/shiny-server…   1.76MB
    12b3a3505ae9        About an hour ago   /bin/sh -c Rscript ./R/main.R                   1.76MB
    69cacc1ad08d        About an hour ago   /bin/sh -c R -e "install.packages('remotes',…   328MB
    eb07c8335c8f        2 hours ago         /bin/sh -c echo "options(renv.consent=TRUE)"…   53B
    55a14476302f        2 hours ago         /bin/sh -c #(nop) WORKDIR /tmp                  0B
    84e502e37546        2 hours ago         /bin/sh -c #(nop) COPY dir:dfcc724126bc931ba…   31.3MB
    f40ad3a5dadd        5 weeks ago         /bin/sh -c #(nop)  CMD ["/usr/bin/shiny-serv…   0B
    <missing>           5 weeks ago         /bin/sh -c #(nop) COPY file:fef7b189480bb622…   359B
    <missing>           5 weeks ago         /bin/sh -c #(nop)  EXPOSE 3838                  0B
    <missing>           5 weeks ago         /bin/sh -c wget --no-verbose https://downloa…   513MB
    <missing>           5 weeks ago         /bin/sh -c apt-get update && apt-get install…   313MB
    <missing>           2 months ago        /bin/sh -c #(nop)  CMD ["R"]                    0B
    <missing>           2 months ago        /bin/sh -c apt-get update   && apt-get insta…   506MB
    <missing>           2 months ago        /bin/sh -c #(nop)  ENV R_VERSION=3.6.1 LC_AL…   0B
    <missing>           2 months ago        /bin/sh -c #(nop)  ENV BUILD_DATE=2019-12-12    0B
    <missing>           2 months ago        /bin/sh -c #(nop)  ARG BUILD_DATE               0B
    <missing>           2 months ago        /bin/sh -c #(nop)  ARG R_VERSION                0B
    <missing>           2 months ago        /bin/sh -c #(nop)  LABEL org.label-schema.li…   0B
    <missing>           2 months ago        /bin/sh -c #(nop)  CMD ["bash"]                 0B
    <missing>           2 months ago        /bin/sh -c #(nop) ADD file:8f7dc710e276f54a3…   101MB
    
    andodet@t480s:~/code/study/cool report$docker图像历史记录-H d21975ad912d
    由大小注释创建的图像
    d21975ad912d大约一小时前/bin/sh-c#(nop)曝光80800B
    11345fbe7c72大约一小时前/bin/sh-c rm-rf/tmp/*0B
    ce8b33984b85大约一小时前/bin/sh-c#(nop)复制文件:1d2d0c462c909cc4…741B
    761bc2a982cd大约一小时前/bin/sh-c#(nop)WORKDIR/0B
    5aa2ae037138大约一小时前/bin/sh-c cp-r./reports/srv/shinny server…1.76MB
    12b3a3505ae9大约一小时前/bin/sh-crscript./R/main.R 1.76MB
    69cacc1ad08d大约一小时前/bin/sh-c R-e“install.packages('remotes'),…328MB
    eb07c8335c8f 2小时前/bin/sh-c echo“选项(renv.approve=TRUE)”…53B
    55a14476302f 2小时前/bin/sh-c#(nop)WORKDIR/tmp 0B
    84e502e37546 2小时前/bin/sh-c#(nop)复制目录:dfcc724126bc931ba…31.3MB
    f40ad3a5dadd 5周前/bin/sh-c#(nop)CMD[“/usr/bin/shinny serv…0B
    5周前/bin/sh-c#(nop)复制文件:fef7b189480bb622…359B
    5周前/bin/sh-c#(nop)暴露3838 0B
    5周前/bin/sh-c wget--没有详细说明https://downloa…513MB
    5周前/bin/sh-c apt获取更新和apt获取安装…313MB
    2个月前/bin/sh-c#(nop)CMD[“R”]0B
    2个月前/bin/sh-c apt获取更新和apt获取安装…506MB
    2个月前/bin/sh-c#(nop)ENV R#u VERSION=3.6.1 LC#u AL…0B
    2个月前/bin/sh-c#(nop)环境建设日期=2019-12-12 0B
    2个月前/bin/sh-c#(nop)ARG构建日期0B
    2个月前/bin/sh-c#(nop)ARG R_版本0B
    2个月前/bin/sh-c#(nop)LABEL org.LABEL schema.li…0B
    2个月前/bin/sh-c#(nop)CMD[“bash”]0B
    2个月前/bin/sh-c#(nop)添加文件:8f7dc710e276f54a3…101MB
    
    使用
    rm-rf
    删除文件不会释放任何空间。Docker映像由附加层组成,有点像Git历史记录中的提交—旧层将始终存在


    您可以尝试多阶段构建,也可以将所有这些运行切换到调用shell脚本的单个运行中,该脚本将删除shell脚本末尾的文件。由于层仅在运行结束时创建,因此,如果在运行结束时临时文件消失,它们将不会占用任何空间。

    谢谢您的回复。我已移动前4个
    RUN
    命令非常小,令人惊讶的是,尽管调用的
    RUN
    更少,但它并没有使图像大小变小。您还需要在shell脚本中删除任何不需要的文件。这不是真正的答案,但Docker Hub上显示的大小是压缩大小。如果您运行
    Docker images rocker/Shining:la在本地测试
    ,你会看到
    rocker/shiny
    图像实际上是1.43GB未压缩的。其中大部分来自图像历史输出下半部分的
    wget
    /
    apt get
    步骤。这非常有意义@gregL,我将重建图像,包括
    --compress
    标志,然后看看会发生什么out.hi@anddt,你有没有找到任何方法来缩小闪亮的图像大小?