Dockerfile saya tampaknya dibangun dengan benar (ini memberi tahu saya demikian). Ketika saya menjalankan wadah, saya mendapatkan pesan kesalahan di bawah ini. Saya telah mencoba menjalankan perintah (CMD) dengan dan tanpa direktori layanan.
crontab.sh pada dasarnya menulis jadwal cron ke file teks (cron.jobs) dan kemudian mengimpor file teks ke crontab.
Seperti yang telah dijelaskan oleh jawaban lainnya, hanya satu CMD akan dijalankan per Dockerfile dan perintah yang ingin Anda jalankan salah.
Tetapi ada masalah yang lebih mendesak dengan pengaturan Anda IMO - wadah Docker Biasanya tidak dirancang untuk bekerja dengan cara ini. Yang harus Anda lakukan adalah menjalankan layanan cron dari host (atau orkestra anda) sebagai proses satu kali (mungkin menggunakan sesuatu seperti docker run atau docker-compose run, atau, jika karena alasan tertentu Anda tidak ingin memulai wadah terpisah untuk ini, saya kira Anda bisa menggunakannya docker exec).
Ini hanya pandangan saya tentang bagaimana wadah harus digunakan, jadi jelas Anda harus mengambilnya dengan sebutir garam.
Jika Anda Menambahkan ini ke /etc/crontab, ini tidak akan muncul di crontab pribadi root, karena ini hanya berisi crontab khusus pengguna yang diedit dengan crontab -e, bukan yang seluruh sistem di /etc.
Lebih detail:
Dugaan saya adalah bahwa /pulse/crontab.sh (yang tidak Anda tunjukkan, mengapa?) menambahkan baris crontab yang relevan ke file crontab lebar sistem /etc/crontab. Anda kemudian menjalankan perintah crontab -l, tetapi ini hanya menunjukkan kesalahan karena mencantumkan roots pribadi crontab saja (yang kebetulan kosong), bukan yang seluruh sistem di /etc/crontab. Ini semua normal dan diharapkan. Untuk menampilkan baris yang ditambahkan skrip Anda, Anda akan mengganti CMD crontab -l dengan CMD cat /etc/crontab.
Semua ini tidak ada hubungannya dengan perintah dockerfile seperti ADD, RUN atau CMD, ini hanya hal-hal dasar Linux.