dpnhp20440
2015-10-20 02:14
浏览 51

在docker中执行owncloud cron

Im using php-apache image to create an owncloud installation. I want to use a system cronjob to execute cron.php, therefore I run:

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

The entrypoint script starts cron with:

cron -f

It gets executed but the owncloud.log shows following message:

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

Fun thing is, if I enter the docker container and execute the command I use for the cronjob, it works. And php --ini shows all php conf.d extensions including mysql.so and pdo_mysql.so.

I also tried to add the cron.conf file as user root with the same result.

Any ideas, what is happening here?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • doufu3718 2015-10-21 19:31
    已采纳

    OK, ALWAYS use absolute paths!!

    path of the php command using the bash in the docker container was different to the one cron used.

    use which php to get the correct path and add it to the cronjob.

    已采纳该答案
    打赏 评论
  • douhunbei0166 2015-10-20 03:17

    Please use the correct folder to keep your cron files: "/etc/cron.d/", use COPY to copy the cron file to inside container and "cron -f" in CMD parameter instead ENTRYPOINT.

    打赏 评论

相关推荐 更多相似问题