繁体   English   中英

使用 Docker 容器运行 PHP 脚本

[英]Run PHP script with Docker container

我有一个docker-compose设置,使用 nginx 和 php7-fpm。 这正在运行,我的 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-container 并将 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

这里有一些要点:

  1. 您设置的环境应该有一个docker-compose.yml (如果没有,您可以使用标志-f指向 docker-compose 文件)
  2. php-fpm-container应该是安装 php-fpm 的服务/容器的名称
  3. 如果您想 pipe 将日志记录到文件中,则应安装该文件夹,以便您可以从容器外部访问它。 或者您可以将 pipe output 到/dev/stdout以便可以通过docker-compose logs命令访问它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM