У меня есть сценарий оболочки, который запускает программу Python для предварительной обработки некоторых данных, а затем запускает программу R, которая выполняет на ней какую-то длительную задачу. Я учусь использовать Докер и я бегуЗапуск сценария оболочки, который запускает программу python, затем программу R
FROM r-base:latest
FROM python
COPY . /usr/local/src/scripts
WORKDIR /usr/local/src/scripts
CMD ["./myscript.sh"]
В моем понимании это делает следующее:
- Get R
- Получить Python
- Скопируйте мой текущий каталог
/usr/local/src/scripts
- Сменить каталог на
/usr/local/src/scripts
- Пробег
./myscript.sh
Внутри myscript.sh
Я использую синтаксис R CMD ...
для запуска моего сценария R. Однако, при запуске этого докер изображение, которое я получаю следующее сообщение об ошибке:
./myscript.sh: line 8: R: command not found
Это говорит о том, что сценарий, при запуске внутри контейнера, не распознает программу R. Я могу подтвердить, что ./myscript.sh
работает локально, но я не могу открыть какой-либо проприетарный код.
Большое вам спасибо! У меня есть пара наблюдений: 1. Какова ОС по умолчанию, используемая контейнером Docker? 2. Не было бы много места, чтобы иметь несколько установок Ubuntu, если у меня было несколько изображений? – Carpetfizz
Это зависит от вас, какую ОС использует контейнер. Хорошим базовым образцом по умолчанию для многих случаев использования является Ubuntu: FROM ubuntu –
Для вашего второго вопроса эти изображения занимают удивительно небольшое пространство. Думайте о них как о лоботомизированных изображениях, они делят много ресурсов с хост-системой (ваш компьютер) и строятся с нуля, чтобы быть легкими. В отличие от VM, вы даже не заметите, какое пространство занимает изображение во многих случаях. Не забудьте принять мой ответ, если вы думаете, что это помогло! :) –