Как запустить несколько сценариев R из одного сценария в контейнере Docker - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть скрипт initiate.R, который запускает два других скрипта, например так:

source("Step1_databaseConnection.R")
source("Step2_buildingDateInfoAndMainFlowInfo.R")

В моем dockerfile я определил следующее:

COPY Step1_databaseConnection.R  /home/project/Step1_databaseConnection.R

COPY Step2_buildingDateInfoAndMainFlowInfo.R  /home/project/Step2_buildingDateInfoAndMainFlowInfo.R

COPY initiate.R  /home/project/initiate.R

CMD ["/usr/local/bin/Rscript", "/home/project/initiate.R"]

Однако , Я получаю следующую ошибку при запуске задачи на AWS: не удается открыть файл 'Step1_databaseConnection.R': такого файла или каталога нет

Когда я изменяю свой dockerfile для запуска двух сценариев по отдельности, это работает. Вот код, который работает:

COPY Step1_databaseConnection.R  /home/project/Step1_databaseConnection.R

COPY Step2_buildingDateInfoAndMainFlowInfo.R  /home/project/Step2_buildingDateInfoAndMainFlowInfo.R

COPY initiate.R  /home/project/initiate.R

CMD ["/usr/local/bin/Rscript", "/home/project/Step1_databaseConnection.R"]

CMD ["/usr/local/bin/Rscript", "/home/project/Step2_buildingDateInfoAndMainFlowInfo.R"]

Есть идеи? Большое спасибо

1 Ответ

0 голосов
/ 30 апреля 2020

Во второй попытке выполнить сценарии вручную вы используете абсолютные пути. Однако с первой попытки скрипт запускается с текущим рабочим каталогом docker es, рабочим каталогом R. Это не местоположение файла. Поэтому вы сначала переместитесь в это место с WORKDIR filepath. После этого вы можете выполнить скрипт, как и ожидалось.

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