owncloud cron 在 docker 内执行

owncloud cron execution within docker

我正在使用 php-apache 映像来创建 owncloud 安装。我想使用系统 cronjob 来执行 cron.php,因此我 运行:

RUN echo "*/3 * * * * php -f /var/www/html/cron.php >> /oc_data/cron.log" > /cron.conf \
        && crontab -u www-data /cron.conf

入口点脚本以 cron 开头:

cron -f

它被执行但 owncloud.log 显示以下消息:

"app":"cron","message":"Failed to connect to the database: An exception occured in driver: could not find driver"

有趣的是,如果我进入 docker 容器并执行我用于 cronjob 的命令,它就会起作用。 php --ini 显示所有 php conf.d 扩展,包括 mysql.so 和 pdo_mysql.so.

我也尝试以 root 用户身份添加 cron.conf 文件,结果相同。

任何想法,这里发生了什么?

请使用正确的文件夹来保存您的 cron 文件:“/etc/cron.d/”,使用 COPY 将 cron 文件复制到内部容器,并在 CMD 参数中使用 "cron -f" 而不是 ENTRYPOINT。

好的,请始终使用绝对路径!!

php 命令在 docker 容器中使用 bash 的路径与使用的一个 cron 不同。

使用 which php 获取正确的路径并将其添加到 cronjob。