RUN
dan ENTRYPOINT
dua cara berbeda untuk menjalankan skrip.
RUN
berarti 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.sh
adalah ide yang bagus.
Ini juga harus dimulai dengan shebang (seperti #!/bin/sh
)
Mempertimbangkan skrip Anda ( bootstarp.sh
: beberapa git config --global
perintah), akan lebih baik menggunakan RUN
skrip itu sekali di Anda Dockerfile
, tetapi pastikan untuk menggunakan pengguna yang tepat ( git config
file global %HOME%/.gitconfig
, yang secara default adalah /root
satu - satunya)
Tambahkan ke Dockerfile Anda:
RUN /bootstart.sh
Kemudian, saat menjalankan penampung, periksa konten /root/.gitconfig
untuk mengonfirmasi bahwa skrip telah dijalankan.
bootstarp.sh
memiliki bit yang dapat dieksekusi?