【发布时间】:2018-04-29 06:25:43
【问题描述】:
所以我最近在 Docker 和 Docker-Compose 上玩得很开心,但在这里需要社区的建议。我有一个 docker-compose 文件,其中包括:
- 一个 Nginx 容器(基于
nginx:1.12-alpine图像) - 一个 PHP-7.0 FPM 容器(基于
php:7.0-fpm-alpine图像) - 一个 MySQL 容器(基于
alpine:3.6图像)
为了与 Docker 将进程分离到单独的容器中的原则保持一致,我现在想添加第四个容器来运行 Cron。 crontab 将是:
*/5 * * * * www-data sh /var/www/html/cron.sh
这是针对 Magento 站点的,而 cron 通常需要不错的计算能力 - 因此我认为将它放在自己的容器中会很棒。
我对此有 3 个问题......
1) Magento 的 cron.sh 运行一些检查,然后运行 cron.php,所以我假设我的新 cron 容器必须安装并运行 php -对吗?
2) 假设我确实需要在 cron 容器中运行 php,那么我不确定是否应该基于 php:7.0-cli-alpine 图像创建 Dockerfile 或使用替代方案?我在某处读到 CLI 映像不会在守护程序模式下运行,因此该容器可能会在运行 docker-compose up -d 后立即退出。
3) 假设我在上面的 (1) 和 (2) 上是正确的,我是否需要确保我在自定义 PHP-7.0 FPM 映像中安装的任何 PHP/PECL 扩展也安装在这个新的 cron 中图片?
感谢您的宝贵时间!
【问题讨论】:
标签: php docker cron docker-compose