RUNและENTRYPOINTเป็นสองวิธีที่แตกต่างกันในการรันสคริปต์
RUNหมายความว่าสร้างคอนเทนเนอร์กลางรันสคริปต์และหยุดสถานะใหม่ของคอนเทนเนอร์นั้นในอิมเมจกลางใหม่ สคริปต์จะไม่ทำงานหลังจากนั้น: ภาพสุดท้ายของคุณควรจะสะท้อนถึงผลลัพธ์ของสคริปต์นั้น
ENTRYPOINT หมายความว่าอิมเมจของคุณ (ซึ่งยังไม่ได้เรียกใช้สคริปต์) จะสร้างคอนเทนเนอร์และเรียกใช้สคริปต์นั้น
ในทั้งสองกรณีจำเป็นต้องเพิ่มสคริปต์และRUN chmod +x /bootstrap.shเป็นความคิดที่ดี
ควรเริ่มต้นด้วยShebang (เช่น#!/bin/sh)
เมื่อพิจารณาสคริปต์ของคุณ ( bootstarp.sh: git config --globalคำสั่งสองคำสั่ง) ควรใช้RUNสคริปต์นั้นครั้งเดียวในของคุณDockerfileแต่ตรวจสอบให้แน่ใจว่าได้ใช้ผู้ใช้ที่ถูกต้อง ( git configไฟล์โกลบอล%HOME%/.gitconfigซึ่งโดยค่าเริ่มต้นคือไฟล์/rootเดียว)
เพิ่มลงใน Dockerfile ของคุณ:
RUN /bootstart.sh
จากนั้นเมื่อเรียกใช้คอนเทนเนอร์ให้ตรวจสอบเนื้อหา/root/.gitconfigเพื่อยืนยันว่าสคริปต์ถูกเรียกใช้
bootstarp.shมีชุดปฏิบัติการบิต?