วิธี ADD / COPY Hidden File ขณะ Build Docker Image
โพสต์เมื่อ 2017-01-27
โดย PoundXI
ปัญหา
เมื่อเราใช้คำสั่ง 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 (เว้นวรรค) ได้ด้วย
ข้อมูลเพิ่มเติม
- http://stackoverflow.com/questions/37222922/how-can-i-docker-build-with-dockerfile/41886840#41886840
- https://docs.docker.com/engine/reference/builder/#add
- https://docs.docker.com/engine/reference/builder/#copy
- https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory#Unix_and_Unix-like_environments
โพสต์ที่เกี่ยวข้อง
ความคิดเห็น
ยังไม่มีความคิดเห็น