启动Rbase docker容器时如何启动cron

时间:2019-10-09 17:04:25

标签: r docker cron

我正在尝试构建一个运行R和cron的docker容器。我需要的是在启动容器时使cron自动运行。

我的dockerfile如下:

# Install R version 3.6
FROM r-base:3.6.0

#install crontab
RUN apt-get update && apt-get -y install cron

# also tried CMD /etc/init.d/cron start
CMD cron

然后我构建映像并在bash中运行容器。 我检查了cron的状态:

/etc/init.d/cron status

我的cron状态如下:

[FAIL] cron is not running ... failed!

我能够通过手动启动cron来启动cron:

/etc/init.d/cron start

我的问题是我应该如何修改我的dockerfile(第CMD行),以便在docker容器启动时cron自动启动?

非常感谢。

1 个答案:

答案 0 :(得分:1)

-f将在后台启动cron,以便您的容器在创建后立即死亡。

在第二个选项中,添加# Install R version 3.6 FROM r-base:3.6.0 #install crontab RUN apt-get update && apt-get -y install cron # also tried CMD /etc/init.d/cron start CMD [ "cron", "-f" ]

-f
Stay in foreground mode, don't daemonize.

因此,它将使您的容器保持运行状态。

/etc/init.d/cron status

但是您将无法使用FROM r-base:3.6.0 RUN apt-get update && apt-get -y install cron RUN apt-get install procps -y CMD ["cron" ,"-f"] 看到cron。在下面的dokcerfile中使用。

docker exec -it <your_container_id> bash -c "ps -aux"

然后运行

{{1}}

您将看到cron正在运行。