RUNdan ENTRYPOINTdua cara berbeda untuk menjalankan skrip.
RUNberarti itu membuat penampung perantara, menjalankan skrip dan membekukan status baru penampung itu dalam gambar perantara baru. Skrip tidak akan dijalankan setelah itu: gambar akhir Anda seharusnya mencerminkan hasil dari skrip itu.
ENTRYPOINT berarti gambar Anda (yang belum mengeksekusi skrip) akan membuat wadah, dan menjalankan skrip tersebut.
Dalam kedua kasus tersebut, skrip perlu ditambahkan, dan a RUN chmod +x /bootstrap.shadalah ide yang bagus.
Ini juga harus dimulai dengan shebang (seperti #!/bin/sh)
Mempertimbangkan skrip Anda ( bootstarp.sh: beberapa git config --globalperintah), akan lebih baik menggunakan RUNskrip itu sekali di Anda Dockerfile, tetapi pastikan untuk menggunakan pengguna yang tepat ( git configfile global %HOME%/.gitconfig, yang secara default adalah /rootsatu - satunya)
Tambahkan ke Dockerfile Anda:
RUN /bootstart.sh
Kemudian, saat menjalankan penampung, periksa konten /root/.gitconfiguntuk mengonfirmasi bahwa skrip telah dijalankan.
bootstarp.shmemiliki bit yang dapat dieksekusi?