簡體   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