我有一个容器用于我的laravel应用程序与php:7.0.4-fpm作为基本图像 .
这是我的dockerfile:
FROM php:7.0.4-fpm
RUN apt-get update && apt-get install -y cron nano libmcrypt-dev \
mysql-client libmagickwand-dev --no-install-recommends \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& docker-php-ext-install mcrypt pdo_mysql
COPY . /var/www
ADD crontab /etc/cron.d/laravel-cron
RUN chmod 0644 /etc/cron.d/laravel-cron
RUN touch /var/log/cron.log
RUN /usr/bin/crontab /etc/cron.d/laravel-cron
RUN cron
-
Cron没有运行,我必须在容器中使用ssh来启动它 .
-
当我手动启动它时,它适用于简单的事情,比如每分钟回复文本 . 但不适用于 php artisan schedule:run 命令 . 在日志中我看到:
运行预定命令:'/ usr / local / bin / php''artisan'错误:insert>'/ dev / null'2>&1
errors:insert 是我的任务的名称,但网站中没有任何更新 .
- 这很奇怪,因为当我手动运行 php artisan schedule:run 命令时,它可以在网站上运行 .
所以我的问题是:如何使cron在docker容器上工作以执行php artisan schedule:run command?最好用dockerfile编写,而不是通过ssh手动编写 .
我也从容器中收到一条奇怪的消息:
ALERT: oops, unknown child (5094) exited with code 1.
Please open a bug report (https://bugs.php.net).