【发布时间】:2018-04-25 15:51:12
【问题描述】:
我在尝试通过 Docker 设置和运行一些 cron 作业时遇到了一些问题 - 它可能与我正在使用的基本映像有关,但我不确定,我有点困惑全部。
下面是我的 Dockerfile 的样子:
FROM wordpress:php7.1-apache
# Remove wp image cache
RUN rm -rf /usr/local/etc/php/conf.d/opcache-recommended.ini \
&& apt update \
&& apt install wget -y \
&& apt-get -y install cron
ADD ./docker/local/crontab /etc/cron.d/mycron
RUN chmod +x /etc/cron.d/mycron
RUN crontab /etc/cron.d/mycron
RUN service cron reload
RUN service cron restart
COPY ./wp-config.php /var/www/html/wp-config.php
COPY ./.htaccess /var/www/html/.htaccess
COPY ./theme /var/www/html/wp-content/themes/paper
RUN chown -R www-data:www-data /var/www
当我使用 docker-compose 构建此映像时,一切正常,网站运行良好。但是 cron 作业没有运行。如果我登录容器并输入crontab -l
它完全按照mycron 文件列出了 cron 作业
* * * * * root wget -O- "http://url.to/script/file.php" >> /var/log/script1.log
* * * * * root wget -O- "http://url.to/script/file2.php" >> /var/log/script2.log
但是 cron 作业没有运行。并且没有创建日志文件。
但是,当我输入crontab -e 并没有更改任何内容然后保存并退出时,然后输入service cron restart
cron 作业开始运行并创建日志文件。
【问题讨论】:
-
您是否尝试在您的
ENTRYPOINT中添加service cron restart命令并检查日志文件状态是否有效? -
我也遇到了同样的问题,有更新吗?
-
@ccalderon911217 我已经尽我所能回答了.. 但我确实让它工作了..