FROM ubuntu:latestMAINTAINER docker@ekito.frRUN apt-get update && apt-get -y install cron# Add crontab file in the cron directoryADD crontab /etc/cron.d/hello-cron# Give execution rights on the cron jobRUN chmod 0644 /etc/cron.d/hello-cron# Apply cron jobRUN crontab /etc/cron.d/hello-cron# Create the log file to be able to run tailRUN touch /var/log/cron.log# Run the command on container startupCMD cron && tail -f /var/log/cron.log
في ملف كرونتاب الخاص بالمستخدم ، عادة تحت /var/spool/cron/USERNAME. هذا هو المكان الذي يتم فيه وضع الأشياء تلقائيا إذا كنت تستخدم الأمر crontab.
في /etc/cron.d
إذا قمت بوضعه في /etc/cron.d، يجب أن يحتوي الملف على اسم المستخدم الذي تقوم بتشغيله تحته ، نظرا لعدم وجود اتصال بين الملف والمستخدم. ولكن إذا كنت تستخدم crontab الأمر ، سيتم وضع مواصفات كرون في كرونتاب تابعة للمستخدم الخاص بك (أو للمستخدم الذي تحدده عند استدعاء crontab) ، لذلك لا تحتاج إلى تضمين اسم المستخدم.
لذلك لإصلاح هذا يمكنك القيام بأي واحد من أمرين:
يمكنك إزالة اسم المستخدم من السلسلة التي تمررها إلى الأمر كرونتاب ، بحيث يبدو مثل هذا:
تشغيل (كرونتاب-ل-يو الجذر ؛ صدى "* * * * * جمهورية مقدونيا-رف /الأراضي الفلسطينية المحتلة/*") / كرونتاب
يمكنك وضع إدخال كرونتاب في ملف تحت /etc/cron.d بدلا من ذلك ، مثل هذا:
>تشغيل (صدى "* * * * * الجذر جمهورية مقدونيا-الترددات اللاسلكية / الأراضي الفلسطينية المحتلة / * " /الخ / كرون.)د (
لدي نفس المشكلة في نفس السياق. نصيحتي هي إنشاء برنامج نصي باش للقيام بكل ما تريد عند بدء تشغيل الحاوية. ثم قم بتعيين كمد في دوكيرفيل لتشغيله باستخدام بناء جملة جسون صفيف.
لدي ملف start.sh للقيام ببعض الاشياء وأنا استخدم & لتشغيله في الخلفية ومن ثم تشغيل كرون &أمبير ؛ &أمبير ؛ أباتشي 2-فورغرونغ لبدء كرون وخادم أباتشي.
هذا هو الأمر النهائي في نهاية ملف الإرساء الخاص بي: