Saya cuba menjalankan cronjob di dalam bekas docker yang memanggil skrip shell.
Saya telah mencari dalam talian dan pada limpahan tindanan semalam tetapi saya tidak dapat mencari penyelesaian yang benar-benar berkesan.
Bagaimana saya boleh melakukan ini?
Jawapan yang diterimaboleh berbahaya dalam persekitaran pengeluaran.
Apabila anda menggunakan
CMD cron && tail -f /var/log/cron.log
时,cron进程基本上会分叉以便在后台执行cron
,主进程退出并让您在前台执行tailf
. Proses cron latar belakang mungkin berhenti atau gagal tanpa anda sedari, bekas anda masih akan berjalan dengan senyap dan alat orkestra anda tidak akan memulakannya semula.Menggunakan ubah hala shell asas, anda mungkin mahu melakukan sesuatu seperti ini:
CMD anda ialah:
CMD ["cron", "-f"]
Tetapi: Bagaimana jikaanda ingin menjalankan tugassebagai pengguna bukan root.
Anda boleh menyalin
crontab
ke dalam imej supaya bekas yang dilancarkan daripada imej itu menjalankan tugas.Penting: Seperti dalamdocker-cron isu 3: Gunakan
cron
LF untukfail, bukan CRLF.LihatMenjalankan kerja cron dengan Docker" /github.com/julienboulay" rel="noreferrer">Julien Boulay dalamEkito/docker-cronnya:
Jika anda tertanya-tanya apakah itu2>&1
:.
cron
Namun: jika mati,bekas terus berjalan.(lihatGaafar'skomen
apt-get
danBagaimana untuk membuatapt-get
memasang kurang bising?
apt-get -y install -qq --force-yes cron
:apt-get -y install -qq --force-yes cron
juga berfungsi)SepertiNathan Lloydmengulas
pada:
Sebagai alternatif, pastikan tugas anda sendiri mengubah hala terus ke stdout/stderr dan bukannya fail log, seperti yang dinyatakan dalamhugoShaka's
jawapan:
Ganti baris Dockerfile terakhir dengan
Tetapi: Bagaimana jikaanda ingin menjalankan tugassebagai pengguna bukan root.
, cron "frontend") "docker ubuntucron -f
,即cron“前台”)“docker ubuntucron -f
Lihat juga (tentangcron -f
cron -f
Not bekerja
”
Bina dan jalankannya:
Ericmenambah dalam komen:Lihat "docker
CMD
”末尾的tail -f
output > tidak ditunjukkan".Lihat "Running Cron in Docker" untuk maklumat lanjut (April 2021) daripadaJason Kulatungasambil diakomen di bawah
Lihat imej Jason
AnalogJ/docker-cron
Berdasarkan:Pemasangan fail Docker
cronie
/crond
, bergantung pada pengedaran.Titik masuk dimulakan
/etc/environment
dan kemudian memanggil