Saya menggunakan gambar ini: dperson / samba
Gambar mendefinisikan titik masuknya sendiri dan saya tidak ingin menimpanya.
Saya perlu meneruskan argumen ke titik masuk, mudah dengan buruh pelabuhan saja:
docker run ... dperson/samba arg1 arg2 arg3
Tetapi bagaimana melakukannya dengan docker_compose.yml?
Saat ini saya menggunakan solusi:
command: samba.sh arg1 arg2 arg3
Tapi itu tidak memuaskan karena saya memaksakan redefinisi dari pintu masuk.
sumber
ENTRYPOINT ["executable", "param1", "param2"]
(formulir exec, lebih disukai)ENTRYPOINT command param1 param2
(bentuk shell) Referensi: Referensi DockerfileAnda bisa menggunakan
docker-compose run
alih-alihdocker-compose up
dan menempelkan argumen di bagian akhir. Sebagai contoh:Jika Anda perlu terhubung ke kontainer buruh pelabuhan lain, gunakan bisa menggunakan
--service-ports
opsi:sumber
Untuk mengganti titik masuk default, gunakan
entrypoint
opsi . Untuk melewati argumen gunakancommand
.Berikut adalah contoh penggantian
bash
dengansh
dalamubuntu
gambar:Berikut hasilnya:
sumber
Saya menghadapi masalah yang sama dengan jenkins ssh slave ' jenkinsci / ssh-slave '. Namun, kasus saya agak rumit karena itu perlu melewati argumen yang berisi spasi. Saya telah berhasil melakukannya seperti di bawah ini (entrypoint di dockerfile dalam bentuk exec):
sumber