Контейнерный конвейер на основе R + bash: вопрос о дизайне и образе базовой ОС - PullRequest
0 голосов
/ 30 апреля 2020

Я новичок в Docker, и я хотел бы создать контейнер, который я написал. Этот конвейер основан на небольшом количестве сценариев R и запускается из командной строки с помощью команды, подобной:

Rscript --no-save --verbose launch.R project-folder/params.yaml

Этот конвейер был разработан и запущен на рабочем столе Ubuntu 16.04 и использовал версию R 3.6.1 ,

Мой первый рефлекс, когда я начал контейнеризацию этого конвейера, заключался в том, чтобы попытаться начать с образа базовой ОС Ubuntu 16.04 и найти способ получить R 3.6.1. Другими словами, я хочу имитировать c исходную среду, которую я использовал для разработки этого конвейера, как можно ближе. Мой вопрос: каков наилучший способ убедиться, что я установил Ubuntu 16.04 + R 3.6.1? Должен ли я:

1) Получить официальный образ Ubuntu 16.04 и использовать его в качестве базового образа (ИЗ Ubuntu: 16.04), а затем приступить к установке R самостоятельно в Dockerfile. Это был мой первый рефлекс, так как я хотел скомпилировать R из исходного кода. Однако вскоре я начал задаваться вопросом, не существует ли уже образа с Ubuntu 16.04 + R. И мой Dockerfile начал становиться достаточно большим при установке из исходного кода, поскольку в образе Ubuntu отсутствует ряд базовых c пакетов (build -не важно, а также мне пришлось установить много зависимостей для R с помощью build-dep).

2) Получить официальный образ R (из https://hub.docker.com/_/r-base?tab=description ) с R.3.6.1. Недостатком здесь является то, что этот образ основан на «Debian GNU / Linux OS», а не на Ubuntu 16.04. Теперь я знаю, что Ubuntu - это тип ОС Debian, может быть, мне стоит просто go с этим? Я догадываюсь, что до тех пор, пока мне нужна версия R - 3.6.1 - конвейер должен работать так, как я ожидаю. Но все же, не уверен ..

3) Получите неофициальное R изображение (https://hub.docker.com/r/rocker/r-ubuntu) с Ubuntu 18.04 и R 3.6 0,3. Меня это не искушает, так как изображение технически неофициально, и у него даже нет нужной мне версии R.

Полагаю, мне просто интересно, что было бы лучшим вариантом в этом сценарии?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...