2015-10-20 100 views
0

使用php-apache映像創建自己的雲安裝。我想用一個系統的cronjob執行cron.php,所以我跑:dockcloud中owncloud cron執行

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" 

有趣的是,如果我進入碼頭集裝箱並執行我用於cronjob的命令,它就可以工作。 php --ini顯示了所有的php conf.d擴展,包括mysql.so和pdo_mysql.so。

我也嘗試以root用戶身份添加cron.conf文件,結果相同。

任何想法,這裏發生了什麼?

回答

0

好的,總是使用絕對路徑!

在Docker容器中使用bash的php命令的路徑與使用的一個cron不同。

使用which php獲取正確的路徑並將其添加到cronjob。

0

請使用正確的文件夾來保留您的cron文件:「/etc/cron.d/」,使用COPY將cron文件複製到內部容器中,並使用CMD參數中的「cron -f」替代ENTRYPOINT。

+0

通常情況下,放置文件的位置以及如何啓用它並不重要。不過,我把文件放到cron.d文件夾中,並用CMD啓動cron -f,但它沒有區別。在owncloud.log中仍然收到相同的錯誤消息 – jazz