我正在尝试构建一个基于 Debian 的映像来 dockerize 一个 cron 进程,但我的 cron 作业从未启动。这是我的Dockerfile:
FROM debian:jessie
RUN apt-get update && apt-get install -y --no-install-recommends cron
COPY jobs.txt /etc/crontab
RUN touch /log.txt
CMD ["cron", "-f"]
Run Code Online (Sandbox Code Playgroud)
...和jobs.txt文件:
* * * * * root echo "job done" >> /log.txt
Run Code Online (Sandbox Code Playgroud)
我意识到COPY命令有问题,因为当我替换
COPY jobs.txt /etc/crontab
Run Code Online (Sandbox Code Playgroud)
和
RUN echo '* * * * * root echo "job done" >> /log.txt' > /etc/crontab
Run Code Online (Sandbox Code Playgroud)
它完美地工作。
那么是否存在jobs.txt文件和 Docker 无法以正确方式复制它的问题?我应该只修复该文件,还是使用完全不同的方法?
COPY使用和之间的唯一区别RUN是文件的权限/etc/crontab:使用COPY664 和使用RUN644。
我找不到任何/etc/crontab需要拥有的权限,但如果您添加
RUN chmod 644 /etc/crontab
Run Code Online (Sandbox Code Playgroud)
COPY在你的 cronjobs 运行行之后Dockerfile(至少对我来说)。所以我认为权限必须是644
| 归档时间: |
|
| 查看次数: |
10176 次 |
| 最近记录: |