使用Docker容器运行PHP脚本

问题描述 投票:0回答:2

我使用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

php docker cron command-line-interface
2个回答
0
投票

[您可能想根据自己的需求重建docker-container,如果打算进一步使用crontab,请在容器内部添加crontab。

或者,您可以使用dockers exec command,这使您可以在指定容器内执行命令。您的crontab可以使用PHP命令运行docker exec


0
投票

有几种方法,但是我将导航到项目文件夹并执行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

一些重要的注意事项:

  1. 您设置的环境中应该有一个docker-compose.yml(如果没有,您可以使用标志-f指向docker-compose文件)
  2. php-fpm-container应该是安装了php-fpm的服务/容器的名称
  3. 如果要将日志通过管道传输到文件,则应安装文件夹,以便可以从容器外部访问该文件夹。或者,您可以将输出通过管道传输到/dev/stdout,以便可以通过docker-compose logs命令对其进行访问。
© www.soinside.com 2019 - 2024. All rights reserved.