2015-10-20 3 views
0

Im с использованием изображения php-apache для создания собственной установки. Я хочу использовать систему cronjob выполнить cron.php, поэтому я бегу:owncloud cron исполнение в докере

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

Сценарий EntryPoint начинается хрон с:

cron -f 

Он получает казнены, но owncloud.log показывает следующее сообщение:

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

Fun вещь, если я вхожу в контейнер Докер и выполнить команду я использую для cronjob, это работает. И php --ini показывает все расширения php conf.d, включая mysql.so и pdo_mysql.so.

Я также попытался добавить файл cron.conf в качестве пользователя root с тем же результатом.

Любые идеи, что здесь происходит?

ответ

0

ОК, ВСЕГДА используйте абсолютные пути!

Путь команды php, использующий bash в контейнере докера, отличается от используемого одного cron.

использовать which php, чтобы получить правильный путь и добавить его в cronjob.

0

Пожалуйста, используйте правильную папку для хранения ваших файлов cron: «/etc/cron.d/», используйте COPY для копирования файла cron внутри контейнера и «cron -f» в параметре CMD вместо ENTRYPOINT.

+0

Как правило, не имеет значения, где я помещаю файлы и как я его включаю. Однако я поместил файл в папку cron.d и начал cron -f с CMD, но это не имеет никакого значения. Все еще получая такое же сообщение об ошибке в собственномcloud.log – jazz