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
มีชุดปฏิบัติการบิต?