คุณยังสามารถติดตั้งไดเร็กทอรีโลคัลลงในอิมเมจนักเทียบท่าของคุณและซอร์สสคริปต์ในไฟล์ .bashrc
ไฟล์. อย่าลืมว่าสคริปต์ต้องประกอบด้วยฟังก์ชันเว้นแต่คุณต้องการให้มันทำงานกับเชลล์ใหม่ทุกตัว (สิ่งนี้ล้าสมัยแล้วโปรดดูประกาศการอัปเดต)
ฉันใช้โซลูชันนี้เพื่ออัปเดตสคริปต์นอกอินสแตนซ์นักเทียบท่า ด้วยวิธีนี้ฉันไม่ต้องเรียกใช้รูปภาพอีกครั้งหากมีการเปลี่ยนแปลงเกิดขึ้นฉันเพิ่งเปิดเชลล์ใหม่ (กำจัดการเปิดเชลล์อีกครั้ง - ดูประกาศการอัปเดต)
นี่คือวิธีการผูกไดเร็กทอรีปัจจุบันของคุณ:
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
ตอนนี้ไดเรกทอรีปัจจุบันของคุณถูกผูกไว้กับ /scripts
อินสแตนซ์นักเทียบท่าของคุณ
(ล้าสมัย) ในการบันทึก.bashrc
การเปลี่ยนแปลงของคุณให้ยอมรับภาพการทำงานของคุณด้วยคำสั่งนี้:
docker commit $container_id $my_docker_build
อัปเดต
ในการแก้ปัญหาเพื่อเปิดเชลล์ใหม่สำหรับการเปลี่ยนแปลงทุกครั้งตอนนี้ฉันทำสิ่งต่อไปนี้:
ใน dockerfile RUN echo "/scripts/bashrc" > /root/.bashrc"
ตัวเองฉันจะเพิ่ม ภายในzshrc
ฉันส่งออกไดเร็กทอรีสคริปต์ไปยังพา ธ ขณะนี้ไดเร็กทอรีสคริปต์มีไฟล์หลายไฟล์แทนที่จะเป็นไฟล์เดียว ตอนนี้ฉันสามารถเรียกสคริปต์ทั้งหมดได้โดยตรงโดยไม่ต้องเปิดเชลล์ย่อยในทุกการเปลี่ยนแปลง
BTW คุณสามารถกำหนดไฟล์ประวัติภายนอกคอนเทนเนอร์ของคุณได้เช่นกัน ด้วยวิธีนี้คุณไม่จำเป็นต้องทำการเปลี่ยนแปลงทุบตีอีกต่อไป
WORKDIR
และCMD
?