ปัญหาที่พบเจอเกี่ยวกับ mvnw (Apache Maven Wrapper) ของ Spring Boot
กับ Docker ใน windows
โดยปัญหาที่เจอคือ เมื่อเราทำการ copy สิ่งต่าง ๆ เข้าไปยัง Docker
ผ่านการกำหนดใน Dockerfile เลยเกิดปัญหา ./mvnw not found
โดยที่ Dockerfile เป็นดังนี้
[gist id="326516df6290d5505f4f90972e7a79ac" file="Dockerfile"]เท่าที่ไปดูปัญหาหลัก ๆ มี 2 เรื่องคือ
- อย่างแรกเรื่อง permission ของไฟล์ mvnw ที่ไม่สามารถ execute ได้ ก็ chmod +x เข้าไปได้
- อย่างที่ 2 เป็นเรื่องของ end of line ของ Windows กับ Linux ที่ต่างกันคือ \r\n หรือ CRLF (Carriage Return and Line Feed) ดังนั้นกเปลี่ยนเป็น LF ได้เลย
โดยแก้ไขปัญหาเฉพาะหน้าแบบนี้ไป
[gist id="326516df6290d5505f4f90972e7a79ac" file="Dockerfile2"]