r - Dockerfile 用于 R-base 上的最小图像大小
问题描述
我正在尝试最小化我的 docker 图像的大小。它位于 Rocker 项目的 R-Base 上。它需要尽可能小,因为它在基于云的工作流中用作容器实例。
该图像需要一些额外的包(、dplyr
和pdftools
)。有些以二进制形式提供,但我找不到这样的。stringr
AzureStor
AzureStor
我已经使用了一些推荐的命令来最小化大小。我还能做什么?请阅读下面的 docker 文件。我现在正在考虑的几个选项:
- 我可以使用“无缓存”来节省空间吗?我如何“实施”这个?
- R 包有二进制版本
AzureStor
吗?我找不到它。 - 是否有任何其他构建命令或 dockerfile 行我可以用来减少任何多余的大小?
任何帮助将非常感激!
这是我当前的 dockerfile
FROM rocker/r-base:latest
## install binary, build and dependend packages from single run command
RUN apt-get update && apt-get install -y -qq --no-install-recommends --purge
r-cran-pdftools \
r-cran-dplyr \
r-cran-stringr \
libxml2-dev \
libssl-dev && \
## install non-binary packages (from the same run command)
echo "r <- getOption('repos');r['CRAN'] <- 'http://cran.us.r-project.org'; options(repos = r);" > ~/.Rprofile && \
Rscript -e "install.packages(c('AzureStor'))" && \
mkdir -p /scripts \
## remove and clean what we can (still the same run command)
apt-get autoclean && \
apt-get -y autoremove libssl-dev && \
rm -rf /var/lib/apt/lists/*
## copy code
COPY script / script
## Set workdir
WORKDIR /scripts
## command line for autorunning the entire rscript
CMD [ "Rscript", "runscript.R"]
现在,大小约为 800 mb。希望把这件事弄下来。
解决方案
推荐阅读
- python - 无法加载 keras 训练的模型
- elasticsearch - 如何使用 ES 5.6 高级休息客户端获取集群的元数据?
- python - 比较 Pandas 列中的 2 个重复值
- material-ui - DataGrid 不显示在带有 filterValues 的选项卡内
- python - 良好的准确性,较少的损失,错误的类别预测 Tf/keras
- php - 在关联数组 PHP 中查找重复项,比较它们的值
- asp.net-mvc-5 - 如何在 mvc 5 编辑中保留当前图像
- php - 如何将准备好的语句输入放入数据库
- html - 防止在 mailto 上导航:链接
- angular - 如何在角度 5 中获取基本 url 和路径?