在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个回答



好的,总是使用绝对路径!! </ p>

使用bash的php命令的路径 docker容器与使用的一个cron不同。</ p>

使用 php </ code>来获取正确的路径并将其添加到cronjob。</ p>
</ DIV>

展开原文

原文

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.



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

展开原文

原文

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.

dsq30861
dsq30861 通常我放置文件的位置和启用方式无关紧要。 但是我把文件放到cron.d文件夹中并用CMD启动了cron -f,但没有区别。 仍然在owncloud.log中收到相同的错误消息
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问