วิธี ADD / COPY Hidden File ขณะ Build Docker Image

ปัญหา

เมื่อเราใช้คำสั่ง ADD หรือ COPY ใน Dockerfile เพื่อคัดลอก Hidden File (ไฟล์ในระบบ Linux ที่ชื่อขึ้นต้นด้วยจุด .) ไปยัง Docker Image ในขณะที่เรา Build Image

ถ้าเราใช้รูปแบบคำสั่งเป็น

ADD <src>... <dest>

หรือ

COPY <src>... <dest>

เราอาจจะพบข้อผิดพลาดดังนี้

lstat destdir/.filename: no such file or directory

วิธีแก้ไข

เพื่อหลีกเลี่ยงข้อผิดพลาดดังกล่าว แนะนำให้ใช้คำสั่ง ADD และ COPY ในอีกรูปแบบหนึ่ง ดังนี้

ADD ["<src>",... "<dest>"]

หรือ

COPY ["<src>",... "<dest>"]

ซึ่งโดยส่วนตัวแล้ว ผมคิดว่ารูปแบบนี้น่าใช้กว่ารูปแบบแรก เพราะนอกจากจะใช้คัดลอก Hidden File ได้แล้ว ก็ยังสามารถใช้รูปแบบนี้คัดลอกไฟล์ที่มี Whitespace (เว้นวรรค) ได้ด้วย

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Leave a Comment