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 diterima boleh 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 jika anda ingin menjalankan tugas sebagai pengguna bukan root .
Anda boleh menyalin
crontab
ke dalam imej supaya bekas yang dilancarkan daripada imej itu menjalankan tugas.Penting: Seperti dalam docker-cron isu 3: Gunakan
cron
LF untuk fail, bukan CRLF.Lihat Menjalankan kerja cron dengan Docker" /github.com/julienboulay" rel="noreferrer">Julien Boulay dalam Ekito/docker-cronnya:
Jika anda tertanya-tanya apakah itu2>&1
:.
terus berjalancron
Namun: jika mati, bekas. (lihat Gaafar's komen
apt-get
dan Bagaimana untuk membuatapt-get
memasang kurang bising?
apt-get -y install -qq --force-yes cron
:apt-get -y install -qq --force-yes cron
juga berfungsi) Seperti Nathan Lloyd mengulas
pada:
Sebagai alternatif, pastikan tugas anda sendiri mengubah hala terus ke stdout/stderr dan bukannya fail log, seperti yang dinyatakan dalam hugoShaka's
jawapan:
Ganti baris Dockerfile terakhir dengan Tetapi: Bagaimana jika anda ingin menjalankan tugas
sebagai pengguna bukan root.
, cron "frontend") "docker ubuntucron -f
,即cron“前台”)“docker ubuntucron -f
Lihat juga (tentangcron -f
cron -f
-
-
Not bekerja
”
Bina dan jalankannya: Eric
menambah 🎜dalam komen🎜: 🎜Lihat "docker
CMD
”末尾的tail -f
output > tidak ditunjukkan ".Lihat "Running Cron in Docker" untuk maklumat lanjut (April 2021) daripada Jason Kulatunga sambil dia komen 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