我使用php7-fpm的nginx使用docker-compose
进行设置。这正在运行,我的PHP页面运行正常。现在,我需要在Cron Job中执行一些php脚本,但是我不想在打算安装Cron Jobs的主机上安装php。
如何使用php7-fpm docker容器运行php脚本?
在旧系统上,我已经安装了php7,因此可以像这样设置cron任务:
0 2 * * * /usr/bin/php /var/www/page/cron/my_php_script.php >> /var/log/cron.log 2>&1
[您可能想根据自己的需求重建docker-container,如果打算进一步使用crontab,请在容器内部添加crontab。
或者,您可以使用dockers exec command,这使您可以在指定容器内执行命令。您的crontab可以使用PHP命令运行docker exec
。
有几种方法,但是我将导航到项目文件夹并执行docker-compose exec
。示例:
0 2 * * * cd /my/project/folder && docker-compose exec -T php-fpm-container php -f /my/project/folder-inside-container/cron/my_php_script.php >> /var/log/cron.log 2>&1
一些重要的注意事项:
docker-compose.yml
(如果没有,您可以使用标志-f
指向docker-compose文件)php-fpm-container
应该是安装了php-fpm的服务/容器的名称/dev/stdout
,以便可以通过docker-compose logs
命令对其进行访问。