docker - 在 Windows 主机上的 docker 容器中运行 cron

标签 docker cron dockerfile docker-for-windows

我在尝试制作运行 cronjob 的容器时遇到了一些问题。我可以看到 cron 在容器中使用 top 运行,但它不会像下面的示例尝试那样写入日志文件。该文件保持为空。

我在这里阅读了同一个问题的答案:

但我无法使任何建议奏效。例如,我使用了这里的 dockerfile:https://github.com/Ekito/docker-cron/

FROM ubuntu:latest
MAINTAINER docker@ekito.fr

# Add crontab file in the cron directory
ADD crontab /etc/cron.d/hello-cron

# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/hello-cron

# Create the log file to be able to run tail
RUN touch /var/log/cron.log

#Install Cron
RUN apt-get update
RUN apt-get -y install cron


# Run the command on container startup
CMD cron && tail -f /var/log/cron.log

定时任务:

* * * * * root echo "Hello world" >> /var/log/cron.log 2>&1
# Don't remove the empty line at the end of this file. It is required to run the cron job

它在我的机器上不起作用 (windows 10)。显然,其他人也报告了一个特定于 Windows 的问题:https://github.com/Ekito/docker-cron/issues/3

为了测试是否只是我做错了什么,我尝试在运行 ubuntu 的虚拟机(因此是 ubuntu 主机而不是我的 Windows 主机)中做同样的事情,并且按预期工作。日志文件按预期扩展。

那么我该怎么做才能使这项工作成功呢?

我尝试写入已安装(绑定(bind))的文件夹并制作一个要写入的卷。都没有用。

最佳答案

rferalli 在 github 问题上的回答对我有用:

“有同样的问题。通过将 crontab 文件的行尾从 CRLF 更改为 LF 来修复它。希望这有帮助!”

关于docker - 在 Windows 主机上的 docker 容器中运行 cron,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341584/

相关文章:

docker - 在 Jenkins 中加速 NPM 构建

amazon-web-services - aws-cli 1.2.10 cron 脚本失败

php - 哪个更适合运行后台进程。 Php Cron 还是 Linux 守护进程?

python - 从 shell 脚本 cron 调用 python 脚本

加载大型 sql 转储时 Docker 内存不足

laravel - 警告 : require(/var/www/vendor/autoload. php):

node.js - 从 docker 构建时安装 nodejs 时出错

Docker:在容器 IP 上公开端口

bash - Docker build-arg在单独的行中定义时不会自动获取env变量

linux - 在 Dockerfile 中安装软件并设置环境变量