我最近一直在与 Docker 合作来托管一个 RStudio 服务器实例。有许多软件包需要安装,在 Dockerfile 中执行此操作的一种方法是(显然还有更多行):
RUN Rscript -e "install.packages('beanplot')"
RUN Rscript -e "install.packages('beeswarm')"
RUN Rscript -e "install.packages('boot')"
RUN Rscript -e "install.packages('caTools')"
Run Code Online (Sandbox Code Playgroud)
我看到很多这样的例子:
RUN Rscript -e "install.packages(c('beanplot','beeswarm','boot','caTools'))
Run Code Online (Sandbox Code Playgroud)
此外,我经常看到像这样链接在一起的各种可执行行:
RUN yum -y update \
&& yum -y groupinstall 'Development Tools' \
&& yum -y install epel-release \
vim \
initscripts \
libpng-devel \
mesa-libGL \
mesa-libGL-devel \
mesa-libGLU \
mesa-libGLU-devel \
ypbind \
rpcbind \
authconfig \
&& yum -y install R \
&& mkdir /rhome
Run Code Online (Sandbox Code Playgroud)
而不是将 is && 行作为单独的 RUN 行。
我原以为这样做的好处是减小了 docker 镜像的大小,但是当我测试一个大示例时,两种方法都会产生相同的大小。
链接命令而不是每一行都有单独的 RUN 命令有什么好处?
| 归档时间: |
|
| 查看次数: |
1255 次 |
| 最近记录: |