【发布时间】:2020-02-06 08:53:20
【问题描述】:
我正在尝试在 docker 容器中运行 R 脚本。这是一个例子。
我的工作目录如下所示。
myRDocker
-dockerfile
-scripts
-save_iris.R
在目录myRDocker中,有一个dockerfile和一个目录scripts,其中包含一个R脚本save_iris.R
我的 R 脚本 save_iris.R 如下所示:
write.csv(iris, '/data/iris.csv')
我的 dockerfile 如下:
# Install R version 3.6
FROM r-base:3.6.0
#install crontab
RUN apt-get update && apt-get -y install cron
RUN mkdir /data
COPY /scripts /scripts
我去了我的目录myRDocker 并构建了 docker 镜像
docker build -t baser .
我在 bash 中运行 docker 容器。
docker run -it baser bash
进入容器后,我做到了:
crontab -e
然后添加这一行,然后保存
* * * * * Rscript /scripts/save_iris.R
它应该每分钟将文件保存到文件夹/data。但是,我从未在容器内的数据文件夹中找到任何文件。
我的问题是:
我在上述过程中做错了什么?我觉得我可能遗漏了一些东西......但不知道为什么......
如果我想在容器启动时运行计划的 cron 任务,我应该怎么做。 (类似于将 cron 任务放在一个文件中,并在容器启动时运行......)
【问题讨论】:
-
也许列出 crontab 下“RScript”的完整路径?你到底想在 crontab 中运行什么?安排保存虹膜似乎效率低下?是否要改为运行 docker 文件?
-
您可能会发现这很有用:stackoverflow.com/questions/37458287/…