RUNvà ENTRYPOINTlà hai cách khác nhau để thực thi một tập lệnh.
RUNcó nghĩa là nó tạo một vùng chứa trung gian, chạy tập lệnh và đóng băng trạng thái mới của vùng chứa đó trong một hình ảnh trung gian mới. Tập lệnh sẽ không được chạy sau đó: hình ảnh cuối cùng của bạn phải phản ánh kết quả của tập lệnh đó.
ENTRYPOINT có nghĩa là hình ảnh của bạn (chưa thực thi tập lệnh) sẽ tạo một vùng chứa và chạy tập lệnh đó.
Trong cả hai trường hợp, script cần phải được thêm vào và a RUN chmod +x /bootstrap.shlà một ý tưởng hay.
Nó cũng nên bắt đầu bằng shebang (như #!/bin/sh)
Xem xét tập lệnh của bạn ( bootstarp.sh: một vài git config --globallệnh), tốt nhất RUNlà tập lệnh đó một lần trong tập lệnh của bạn Dockerfile, nhưng hãy đảm bảo sử dụng đúng người dùng ( git configtệp chung %HOME%/.gitconfig, theo mặc định là tệp /root)
Thêm vào Dockerfile của bạn:
RUN /bootstart.sh
Sau đó, khi chạy một vùng chứa, hãy kiểm tra nội dung của /root/.gitconfigđể xác nhận tập lệnh đã được chạy.
bootstarp.shbit thực thi được đặt không?