我使用 nginx 和 php7-fpm 进行了 docker-compose
的设置。它正在运行,并且我的 PHP 页面工作正常。现在我需要在 Cron 作业中执行一些 php 脚本,但我不想在我计划安装 Cron 作业的主机上安装 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-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 log
命令访问它。
关于php - 使用 Docker 容器运行 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61192564/