php - 使用 Docker 容器运行 PHP 脚本

标签 php docker cron command-line-interface

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

这里的一些要点:

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

关于php - 使用 Docker 容器运行 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61192564/

相关文章:

linux - crontab @reboot 在服务器重启时不执行 bash 脚本

PHP XSLTProcessor 剥离样式属性和标签

java - 微服务应用程序的 kubernetes 架构 - 建议

c# - 仅通过查看 cron 表达式获取下一次触发时间

docker - 无需端口即可在Rancher/Docker中进行RESTful API调用

ruby - 无法使用 ruby​​ gem 安装 sass。无法构建 gem native 扩展

python - 如何在 linux crontab 中运行 python 程序?

php - 当数据库被播种时,是否可以阻止 Laravel 运行模型事件?

php - 表单的 View 数据应该是类 My\(...) 的实例,但它是一个 (n) 数组

javascript - opencart 2.0 中搜索按钮移至顶部栏