วิธีสร้างอิมเมจสำหรับแอปพลิเคชัน Java โดยใช้ Dockerfile

Withi Srang Ximmec Sahrab Xaepphlikhechan Java Doy Chi Dockerfile



Docker เป็นฟอรัมที่ออกแบบมาเพื่อช่วยนักพัฒนาในการสร้าง ปรับใช้ และรันแอปพลิเคชันคอนเทนเนอร์ เพื่อจุดประสงค์ดังกล่าว จึงมีการใช้อิมเมจ Docker โดยพื้นฐานแล้วอิมเมจนักเทียบท่านั้นเป็นแพ็คเกจปฏิบัติการของแอปพลิเคชันที่มีทั้งหมดที่จำเป็นในการเรียกใช้แอปพลิเคชัน นักพัฒนาสามารถสร้างอิมเมจที่แตกต่างกันสำหรับแอปพลิเคชันทุกประเภท เช่น Java และอื่นๆ อีกมากมาย

ผลลัพธ์จากบล็อกนี้คือ:







จะสร้างอิมเมจโดยใช้ Dockerfile สำหรับแอปพลิเคชัน Java ได้อย่างไร

ดูขั้นตอนต่อไปนี้เพื่อสร้างอิมเมจสำหรับแอปพลิเคชัน Java ผ่าน Dockerfile



ขั้นตอนที่ 1: เข้าถึงโฟลเดอร์ Java



ก่อนอื่น ให้เปิดตัวแก้ไขซอร์สโค้ดที่คุณต้องการ และเข้าถึงโฟลเดอร์ที่มีแอปพลิเคชัน Java ของคุณอยู่ เช่น เราเปิดไฟล์ รหัสวิชวลสตูดิโอ ตัวแก้ไขซอร์สโค้ดแล้วคลิกที่ เปิดโฟลเดอร์… ตัวเลือก:






ตอนนี้ เลือกโฟลเดอร์เฉพาะจากเครื่องของคุณแล้วกด เลือกโฟลเดอร์ ปุ่ม. ที่นี่เราเลือก ชวา1 โฟลเดอร์:


ขั้นตอนที่ 2: เปิดไฟล์แอปพลิเคชัน Java



จากนั้นเปิดโฟลเดอร์แอปพลิเคชัน Java ของคุณแล้วตรวจสอบไฟล์ที่มีอยู่ ในกรณีของเรา มีไฟล์ชื่อเดียวเท่านั้น demo2.java ซึ่งมีรหัสต่อไปนี้:

การสาธิตชั้นเรียน1 {
โมฆะคงที่สาธารณะหลัก ( สตริง [ ] หาเรื่อง ) {
System.out.println ( 'สวัสดี ยินดีต้อนรับสู่หน้า LinuxHint ของฉัน' ) ;
}
}



ขั้นตอนที่ 3: สร้าง Dockerfile

จากนั้นคลิกที่ไอคอนที่ไฮไลต์ด้านล่างเพื่อสร้าง Dockerfile:


อย่างที่คุณเห็น Dockerfile ถูกสร้างขึ้นสำเร็จแล้ว:


ขั้นตอนที่ 4: แก้ไข Dockerfile

หลังจากนั้นให้วางโค้ดต่อไปนี้ลงใน Dockerfile:

จาก openjdk: สิบเอ็ด
WORKDIR / แอป
คัดลอก .
ซีเอ็มดี [ 'จาวา' , './demo1.java' ]


ที่นี่:

    • จาก คำสั่งใช้เพื่อตั้งค่าอิมเมจพื้นฐานสำหรับคำสั่งต่อไป ภาพฐานของเราคือ openjdk:11 .
    • WORKDIR คำสั่งใช้สำหรับระบุไดเร็กทอรีการทำงานของคอนเทนเนอร์ Docker ในเวลาใดก็ตาม ที่นี่, /แอป เป็นไดเร็กทอรีการทำงาน
    • สำเนา คำสั่งใช้สำหรับการคัดลอกไฟล์จากระบบโฮสต์ไปยังอิมเมจ Docker ที่สร้างขึ้นใหม่ ในกรณีของเรา มันจะคัดลอกไฟล์จากไดเร็กทอรีการทำงานปัจจุบันและวางลงในเส้นทางคอนเทนเนอร์ปัจจุบัน
    • ซีเอ็มดี คำสั่งใช้สำหรับระบุคำสั่งที่จะดำเนินการเมื่อคอนเทนเนอร์ Docker เริ่มทำงาน ที่นี่, ชวา คือไฟล์ปฏิบัติการและ demo1.java file เป็นพารามิเตอร์:



ขั้นตอนที่ 5: เปิดเทอร์มินัลใหม่

จากนั้นคลิกที่จุดสามจุดที่ไฮไลต์ด้านล่าง เลือก เทอร์มินัล ตัวเลือกแล้วกด เทอร์มินัลใหม่ เพื่อเปิดเทอร์มินัลใหม่:


ขั้นตอนที่ 6: สร้างอิมเมจ Docker

หลังจากทำเช่นนั้น ให้รันคำสั่งที่ให้มาเพื่อสร้างอิมเมจ Docker สำหรับแอปพลิเคชัน Java:

สร้างนักเทียบท่า -ที การสาธิต1 .


ในคำสั่งที่ระบุไว้ข้างต้น:

    • สร้างนักเทียบท่า คำสั่งใช้ในการสร้างภาพ
    • -ที tag ใช้สำหรับระบุชื่อรูปภาพ
    • การสาธิต1 คือชื่อภาพของเรา
    • . ใช้ในการโหลดภาพ:



ขั้นตอนที่ 7: แสดงรายการรูปภาพ

หากต้องการตรวจสอบว่าอิมเมจ Docker ใหม่ถูกสร้างขึ้นหรือไม่สำหรับแอปพลิเคชัน Java ให้รันคำสั่งต่อไปนี้:

ภาพนักเทียบท่า


ตามเอาต์พุตที่ให้ไว้ด้านล่าง อิมเมจนักเทียบท่าใหม่มีอยู่ในรายการ:


ขั้นตอนที่ 8: เรียกใช้ Build Docker Image

สุดท้ายให้รันอิมเมจ build Docker ผ่านไฟล์ นักเทียบท่าวิ่ง คำสั่งพร้อมกับชื่อรูปภาพ:

นักเทียบท่ารัน demo1


เป็นผลให้มันจะรันรูปภาพและแสดงคำแนะนำทั้งหมดที่มีอยู่:

ปัญหาประเภทใดที่มักเกิดขึ้นขณะสร้างอิมเมจ Docker

ในขณะที่สร้างอิมเมจใหม่บน Docker ผู้ใช้มักจะพบปัญหาหลายประการ ซึ่งมีดังต่อไปนี้:

    • หากนักพัฒนาใช้เฟรมเวิร์กที่มีประสิทธิภาพของภาษาการเขียนโปรแกรมเพื่อสร้างแอปพลิเคชันได้อย่างสะดวก พวกเขาอาจพบว่าการเขียน Dockerfile เพื่อสร้างอิมเมจแอปพลิเคชันเป็นเรื่องยาก
    • รูปภาพที่สร้างขึ้นอาจมีขนาดใหญ่และใช้พื้นที่มากขึ้น เนื่องจากเมื่อผู้ใช้พยายามสร้างรูปภาพ แต่ละคำสั่งภายใน Dockerfile จะสร้างเลเยอร์ของรูปภาพ ซึ่งทำให้โครงสร้างรูปภาพซับซ้อนยิ่งขึ้นและขยายขนาดรูปภาพให้ใหญ่ขึ้น
    • หากนักพัฒนารวมซอร์สโค้ดของแอปพลิเคชันไว้ในรูปภาพสุดท้าย อาจทำให้โค้ดรั่วไหลได้

แค่นั้นแหละ! เราได้อธิบายวิธีการสร้างอิมเมจสำหรับแอปพลิเคชัน Java ผ่าน Dockerfile

บทสรุป

อิมเมจนักเทียบท่าประกอบด้วยชุดคำสั่งที่ใช้สำหรับการรันแอปพลิเคชันในคอนเทนเนอร์เช่น ชวา . หากต้องการสร้างอิมเมจโดยใช้ Dockerfile สำหรับแอปพลิเคชัน Java ขั้นแรก ให้เข้าถึงโฟลเดอร์เฉพาะซึ่งมีไฟล์ซอร์สโค้ด Java จากนั้นสร้าง Dockerfile ใหม่และเพิ่มคำสั่งที่จำเป็น หลังจากนั้นให้เปิดเทอร์มินัลแล้วดำเนินการ นักเทียบท่า build -t <ชื่อรูปภาพ> คำสั่งให้สร้างภาพ ในคู่มือนี้ เราได้แสดงขั้นตอนการสร้างอิมเมจใหม่โดยใช้ Dockerfile