Saya ingin memeriksa gambar buruh pelabuhan yang dibuat oleh orang lain dengan titik masuk dan cmd yang ditentukan, misalnya:
ENTRYPOINT ["/usr/sbin/apache2ctl"]
CMD ["-D", "FOREGROUND"]
Saat ini saya lakukan:
docker run --interactive --tty --entrypoint=/bin/bash $IMAGE --login
Apakah ada cara untuk mengganti CMD menjadi kosong (jadi saya tidak perlu menggunakan "--login")?
-i
after$IMAGE
?Lihat: https://docs.docker.com/engine/reference/run/#overriding-dockerfile-image-defaults
Bagian yang relevan:
CMD (Perintah atau Opsi Default). Ingat PERINTAH opsional di baris perintah Docker:
Perintah ini opsional karena orang yang membuat IMAGE mungkin telah memberikan PERINTAH default menggunakan Dockerfile CMD. Sebagai operator (orang yang menjalankan wadah dari gambar), Anda dapat mengesampingkan CMD itu hanya dengan menentukan PERINTAH baru.
Jika gambar juga menentukan ENTRYPOINT, CMD atau COMMAND akan ditambahkan sebagai argumen untuk ENTRYPOINT.
Jadi untuk melakukan apa yang Anda inginkan, Anda hanya perlu menentukan cmd, dan mengganti menggunakan
/bin/bash
. Tidak cukup "kosong", tetapi menyelesaikan pekerjaan 99%.sumber
--login
menjadi-l
saya kira solusi Anda sudah sebaik yang didapatnya.1 ? Ssl 0:00 /usr/bin/geth echo setting up db
Bagi siapa pun yang datang ke sini untuk menimpa entri titik DAN perintah untuk melewati perintah lain, misalnya jalankan bash bukannya skrip entri dan kemudian jalankan beberapa perintah lain dengan parameter (tidak jelas bagi saya dari jawaban lain):
-c 'npm link ...'
adalah parameter untuk/bin/sh
jadi di sini Anda dapat melewati perintah apa pun yang ingin Anda jalankan dalam wadah./bin/sh
adalah untuk gambar alpine,/bin/bash
kemungkinan besar untuk gambar lainnya.sumber
'...'
gunakan tanda kutip ganda"..."
/bin/sh
tetapi Anda mungkin tidak demikian.