คอนเทนเนอร์เป็นฟีเจอร์ที่ยอดเยี่ยมที่ช่วยให้นักพัฒนาของเราสามารถจัดแพคเกจแอปพลิเคชันพร้อมกับการขึ้นต่อกันที่จำเป็นในหน่วยเดียว จากนั้นเราสามารถย้ายคอนเทนเนอร์และปรับใช้แอปพลิเคชันข้ามสภาพแวดล้อมโดยไม่ต้องกังวลเรื่องความเข้ากันได้
กระติกน้ำคืออะไร?
Flask เป็นไมโครเว็บเฟรมเวิร์กที่เรียบง่ายและมีน้ำหนักเบาสำหรับ Python โดยมีคุณสมบัติและไลบรารีที่จำเป็นซึ่งจำเป็นในการสร้างเว็บแอปพลิเคชันแบบไลท์เวทโดยใช้ภาษา Python
Flask เป็นไปตาม Web Server Gateway Interface หรือมาตรฐาน WSGI ซึ่งช่วยให้เราสามารถรวมการออกแบบที่เรียบง่ายเข้ากับรูปแบบที่ยืดหยุ่นซึ่งสามารถจัดการคำขอ HTTP และคุณสมบัติอื่นๆ ได้ ตัวอย่างเช่น Flask รองรับคุณสมบัติเว็บ เช่น การกำหนดเส้นทาง ฐานข้อมูล และอื่นๆ
ข้อกำหนดเบื้องต้น:
หากต้องการปฏิบัติตามโค้ดและคำสั่งที่ให้ไว้ในบทช่วยสอนนี้ ตรวจสอบให้แน่ใจว่าคุณมีเครื่องมือต่อไปนี้:
- ติดตั้งล่าม Python บนเครื่องของคุณ (แนะนำเวอร์ชัน 3.11 ขึ้นไป)
- ติดตั้ง Docker engine บนเครื่องโฮสต์ (แนะนำให้ใช้เวอร์ชัน 23 ขึ้นไป)
- โปรแกรมแก้ไขข้อความหรือ IDE ที่คุณเลือก
เมื่อมีคุณสมบัติตรงตามข้อกำหนดแล้ว เราก็สามารถดำเนินการตามบทแนะนำนี้ได้
สร้างแอปพลิเคชัน Flask
อย่างที่คุณเดาได้ ขั้นตอนแรกคือการสร้างแอปพลิเคชัน Python ที่เราต้องการสร้างคอนเทนเนอร์ ในกรณีของเรา เราสาธิตมันด้วยแอปเรียบง่ายที่พิมพ์คำว่า “hello world”
สร้างไดเร็กทอรีใหม่เพื่อจัดเก็บซอร์สโค้ดสำหรับโปรเจ็กต์ของคุณ และสร้างไฟล์ Python ชื่อ 'app.py'
แก้ไข “app.py” ด้วยโปรแกรมแก้ไขข้อความหรือ IDE ที่คุณชื่นชอบ และเพิ่มโค้ดสำหรับแอปพลิเคชันของคุณดังนี้:
จาก กระติกน้ำ นำเข้า กระติกน้ำแอป = กระติกน้ำ ( __ชื่อ__ )
@ แอป. เส้นทาง ( '/' )
แน่นอน สวัสดีชาวโลก ( ) : :
กลับ '
สวัสดีชาวโลก!
'
สร้าง Dockerfile
ต่อไป เราต้องกำหนดคำแนะนำที่ช่วยให้เราสามารถจัดแพคเกจแอปพลิเคชันเป็นอิมเมจ Docker ได้ เราใช้ Dockerfile ซึ่งมีคำแนะนำและเครื่องมือทั้งหมดในการตั้งค่าภาพ
ในไดเร็กทอรีเดียวกันกับ 'hello.py' ให้สร้างไฟล์ใหม่ชื่อ 'Dockerfile' โดยไม่มีนามสกุล รันคำสั่งต่อไปนี้:
$ แตะ Dockerfileแก้ไขไฟล์และเพิ่มโค้ดดังนี้:
ใช้อิมเมจ Python อย่างเป็นทางการเป็นอิมเมจพื้นฐาน
จากหลาม: 3.12 -rc-บางWORKDIR /แอป
คัดลอก /แอป
#ติดตั้งกระติกน้ำ
เรียกใช้การติดตั้ง pip --no-cache- คุณ -ข้อกำหนด ข้อความ
# เปิดเผยพอร์ต 5,000 สำหรับแอป Flask
เปิดเผย 5,000
# เรียกใช้แอปพลิเคชัน Flask
ซีเอ็มดี [ 'หลาม' , 'app.py' ]
Dockerfile ก่อนหน้าดำเนินการดังต่อไปนี้:
- ใช้อิมเมจเพรียวบางอย่างเป็นทางการของ Python 3.12 เป็นอิมเมจพื้นฐาน
- ตั้งค่าไดเร็กทอรีการทำงานภายในคอนเทนเนอร์เป็น “/app”
- คัดลอกเนื้อหาของไดเร็กทอรีโครงการลงในคอนเทนเนอร์
- ติดตั้ง Flask และการอ้างอิงอื่น ๆ โดยเรียกใช้ “pip install” โดยใช้ไฟล์ “requirements.txt”
- เปิดเผยพอร์ต 5000 สำหรับแอปพลิเคชัน Flask
- กำหนดคำสั่งเพื่อรันแอปพลิเคชัน Flask
ตรวจสอบให้แน่ใจว่าไฟล์ “requirements.txt” มีอยู่ในไดเร็กทอรีโปรเจ็กต์ และเพิ่มเนื้อหาของไฟล์ดังแสดงต่อไปนี้:
กระติกน้ำ == 2.3.3ในกรณีนี้ เราระบุว่าต้องการติดตั้ง Flask เวอร์ชัน 2.3.3
สร้างอิมเมจนักเทียบท่า
ตอนนี้เรามีแอปพลิเคชัน Flask และ Dockerfile พร้อมแล้ว เราก็สามารถดำเนินการและสร้างอิมเมจด้วยคำสั่งต่อไปนี้:
นักเทียบท่า build -t flask-docker-appตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเร็กทอรีโปรเจ็กต์ก่อนที่จะรันคำสั่งก่อนหน้า คุณสามารถแทนที่ flask-docker-app ด้วยชื่อที่คุณต้องการกำหนดให้กับรูปภาพของคุณได้
เรียกใช้คอนเทนเนอร์นักเทียบท่า
ด้วยอิมเมจ Docker ที่สร้างขึ้น เราสามารถรันคอนเทนเนอร์ตามอิมเมจได้โดยใช้คำสั่ง “docker run” ดังต่อไปนี้:
นักเทียบท่าทำงาน -p 5,000 : : 5,000 แอพขวดนักเทียบท่าสิ่งนี้ควรสร้างคอนเทนเนอร์และแมปพอร์ต 5000 จากคอนเทนเนอร์ไปยังพอร์ต 5000 บนระบบโฮสต์
เมื่อดำเนินการแล้ว ให้เปิดเบราว์เซอร์แล้วไปที่ ABA596266490D5CA22D37DBAB459FC4E552C8เพิ่ม .
คุณควรเห็นข้อความ “สวัสดีชาวโลก!” ข้อความจากแอปพลิเคชัน Flask
บทสรุป
ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีคอนเทนเนอร์แอปพลิเคชัน Python Flask อย่างง่ายโดยใช้ Docker