Dockerfile для минимального размера изображения на R-base - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь минимизировать размер моего образа докера. Это на R-Base из рокерского проекта. Он должен быть как можно меньше, поскольку он используется в качестве экземпляра контейнера в облачном рабочем процессе.

Для изображения требуются дополнительные пакеты (dplyr, pdftools, stringr и * 1006). *). Некоторые доступны в двоичном виде, но AzureStor я не смог найти как таковой.

Я уже использовал некоторые рекомендуемые команды, чтобы минимизировать размер. Что я могу сделать больше? Пожалуйста, прочитайте файл докера ниже. Несколько вариантов, которые я сейчас рассматриваю:

  • Могу ли я сэкономить место, используя 'no cache'? Как мне «реализовать» это?
  • Существует ли двоичная версия для пакета 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 МБ. В надежде свалить это.

...