การสร้างอิมเมจ Docker ด้วย Jenkins
กำหนดค่างาน Jenkins ให้สร้างและพุชอิมเมจ Docker ไปยังรีจิสทรีโดยอัตโนมัติเมื่อโค้ดเปลี่ยนแปลง
การสร้างอิมเมจ Docker ด้วย Jenkins เป็นบทเรียน Docker & DevOps Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Docker & DevOps Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Docker & DevOps Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
ทำให้การสร้าง Docker เป็นอัตโนมัติ
การสร้างอิมเมจ Docker ด้วยตนเองอาจใช้เวลานาน ไม่สม่ำเสมอ และมีโอกาสเกิดข้อผิดพลาด โดยเฉพาะในสภาพแวดล้อมการทำงานเป็นทีมหรือเมื่อมีการเปลี่ยนแปลงโค้ดบ่อยครั้ง
ระบบอัตโนมัติคือกุญแจสำคัญสู่การส่งมอบซอฟต์แวร์ที่เชื่อถือได้และมีประสิทธิภาพ ในบทเรียนนี้ เราจะเรียนรู้วิธีผสาน Jenkins เข้ากับ Docker เพื่อทำให้การสร้างและส่งอิมเมจเป็นอัตโนมัติ

ข้อกำหนดเบื้องต้นสำหรับ Jenkins และ Docker
เพื่อให้ Jenkins สร้างอิมเมจ Docker ได้ Jenkins ต้องสื่อสารกับดีมอน Docker ซึ่งหมายความว่าต้องติดตั้งไคลเอ็นต์ Docker บนเครื่องหรือตัวแทนที่งาน Jenkins จะทำงาน
คุณจะต้องมีสิ่งต่อไปนี้ด้วย:
- เซิร์ฟเวอร์ Jenkins ที่กำลังทำงานอยู่ (จากบทเรียนที่ 1)
- สิทธิ์เข้าถึงคลัง Docker เช่น Docker Hub
- แอปพลิเคชันตัวอย่างและ Dockerfile ของแอปพลิเคชันนั้น
การติดตั้ง Docker บนโฮสต์ Jenkins
เพื่อให้ Jenkins เรียกใช้คำสั่ง Docker ได้ โปรดตรวจสอบว่าได้ติดตั้งและกำหนดค่า Docker บนเซิร์ฟเวอร์หรือเอเจนต์ Jenkins แล้ว โดยทั่วไปผู้ใช้ Jenkins จำเป็นต้องมีสิทธิ์โต้ตอบกับดีมอน Docker
ต่อไปนี้เป็นวิธีตั้งค่าบนระบบ Linux:
sudo apt-get update
sudo apt-get install -y docker.io
sudo usermod -aG docker jenkins
sudo systemctl restart docker
sudo systemctl restart jenkinsการรักษาความปลอดภัยข้อมูลรับรองของรีจิสทรี
หากต้องการส่งอิมเมจไปยังรีจิสทรี Docker, Jenkins จำเป็นต้องใช้ข้อมูลรับรอง สิ่งสำคัญคือต้องจัดเก็บข้อมูลเหล่านี้อย่างปลอดภัย ไม่ใช่ใส่ไว้โดยตรงใน Jenkinsfile หรือการกำหนดค่างาน
ฟีเจอร์ ข้อมูลรับรอง ในตัวของ Jenkins เหมาะสำหรับงานนี้เป็นอย่างยิ่ง:
- ไปที่ จัดการ Jenkins > จัดการข้อมูลรับรอง
- เพิ่มข้อมูลรับรอง ชื่อผู้ใช้พร้อมรหัสผ่าน ใหม่สำหรับรีจิสทรี Docker ของคุณ
- กำหนด ID ที่สื่อความหมายให้ข้อมูลรับรอง เช่น
dockerhub-credentialsเพื่อใช้อ้างอิงในภายหลัง
แอปพลิเคชัน Flask ตัวอย่าง
ลองใช้แอปพลิเคชัน Python Flask ที่เรียบง่ายมาก เราจะใส่แอปพลิเคชันนี้ไว้ในไฟล์ชื่อ app.py ซึ่งจะแสดงข้อความพื้นฐานว่า 'Hello'
เรายังต้องมีไฟล์ requirements.txt เพื่อระบุไลบรารีที่ Python ต้องใช้ด้วย
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello from CoddyKit!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
# requirements.txt
Flask==2.0.2การสร้าง Dockerfile
ต่อไป เราจะกำหนดอิมเมจ Docker โดยใช้ Dockerfile ไฟล์นี้จะบอก Docker วิธีสร้างอิมเมจแอปพลิเคชันของเรา
วาง Dockerfile นี้ไว้ในไดเรกทอรีเดียวกับ app.py และ requirements.txt
# Dockerfile
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
EXPOSE 5000
CMD ["python", "app.py"]งาน Jenkins: ขั้นตอนการสร้าง
ตอนนี้ลองกำหนดค่างาน Jenkins แบบ Freestyle ในส่วน ขั้นตอนการสร้าง ให้เพิ่มขั้นตอน ดำเนินการเชลล์ คำสั่งนี้จะสร้างอิมเมจ Docker ของคุณ
อย่าลืมแทนที่ yourusername ด้วยชื่อผู้ใช้ Docker Hub หรือเส้นทางรีจิสทรีของคุณ
# In Jenkins 'Execute shell' build step:
docker build -t yourusername/coddykit-app:latest .งาน Jenkins: ขั้นตอนเข้าสู่ระบบและส่งอิมเมจ
หลังจากสร้างอิมเมจแล้ว เราต้องส่งอิมเมจนั้นไปยังรีจิสทรี Docker โดยทั่วไปจะต้องเข้าสู่ระบบก่อน เราจะใช้ข้อมูลรับรองที่จัดเก็บไว้ก่อนหน้านี้
เพิ่มขั้นตอน ดำเนินการเชลล์ อีกขั้นตอนหนึ่ง หากกำหนดค่าอย่างถูกต้อง Jenkins จะใส่ข้อมูลรับรองเป็นตัวแปรสภาพแวดล้อม เช่น DOCKER_USER และ DOCKER_PASS
# In Jenkins 'Execute shell' build step:
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
docker push yourusername/coddykit-app:latestการทำให้ตัวทริกเกอร์การสร้างทำงานโดยอัตโนมัติ
จุดเด่นของ CI/CD คือการทำงานอัตโนมัติ Jenkins สามารถทริกเกอร์งานสร้างและส่งอิมเมจเหล่านี้โดยอัตโนมัติตามเหตุการณ์ต่าง ๆ:
- การตรวจสอบ SCM: Jenkins จะตรวจสอบที่เก็บ Git ของคุณเป็นระยะเพื่อค้นหาคอมมิตใหม่
- เว็บฮุก: ผู้ให้บริการ Git ของคุณ เช่น GitHub, GitLab และ Bitbucket จะส่งการแจ้งเตือนไปยัง Jenkins ทุกครั้งที่มีการส่งโค้ด
- โครงการต้นทาง: ทริกเกอร์เมื่อการทำงานของงาน Jenkins อื่นเสร็จสมบูรณ์
การทดสอบงาน Jenkins
หลังจากกำหนดค่าขั้นตอนการสร้างและทริกเกอร์แล้ว ให้บันทึกงาน Jenkins ของคุณ คุณสามารถทริกเกอร์การสร้างด้วยตนเองเพื่อทดสอบได้ โปรดดูผลลัพธ์คอนโซลเพื่อยืนยันว่าการสร้างและการส่งอิมเมจ Docker สำเร็จ
การทำงานสำเร็จหมายความว่ากระบวนการ CI ของคุณสามารถสร้างและจัดเก็บอิมเมจ Docker ใหม่โดยอัตโนมัติทุกครั้งที่โค้ดเปลี่ยนแปลง
ตรวจสอบอย่างรวดเร็ว
คุณได้ตั้งค่างาน Jenkins เพื่อสร้างและส่งอิมเมจ Docker แล้ว ขณะนี้ที่เก็บ Git ของคุณมีการเปลี่ยนแปลงโค้ดใหม่
สรุป: สร้างและส่งอิมเมจ
ทำได้ดีมาก ในบทเรียนนี้ คุณได้เรียนรู้วิธี:
- เตรียมสภาพแวดล้อม Jenkins ให้พร้อมสำหรับการโต้ตอบกับ Docker
- จัดการข้อมูลรับรองรีจิสทรี Docker ใน Jenkins อย่างปลอดภัย
- กำหนดค่างาน Jenkins เพื่อสร้างอิมเมจ Docker โดยใช้ Dockerfile
- ส่งอิมเมจที่สร้างใหม่ไปยังรีจิสทรี Docker
- ทำความเข้าใจวิธีต่าง ๆ ในการทริกเกอร์การสร้างโดยอัตโนมัติ
การทำขั้นตอนเหล่านี้ให้เป็นอัตโนมัติถือเป็นส่วนสำคัญของการผสานรวมอย่างต่อเนื่อง และเป็นพื้นฐานสำหรับการส่งมอบอย่างต่อเนื่อง
คำถามที่พบบ่อย
บทเรียน “การสร้างอิมเมจ Docker ด้วย Jenkins” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้างอิมเมจ Docker ด้วย Jenkins” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Docker & DevOps Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Docker & DevOps Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้างอิมเมจ Docker ด้วย Jenkins”
กำหนดค่างาน Jenkins ให้สร้างและพุชอิมเมจ Docker ไปยังรีจิสทรีโดยอัตโนมัติเมื่อโค้ดเปลี่ยนแปลง คุณปฏิบัติ Docker & DevOps Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Docker & DevOps Fundamentals หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Docker & DevOps Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้างอิมเมจ Docker ด้วย Jenkins” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Docker & DevOps Fundamentals นี้ได้ไหม
ได้ บทเรียน Docker & DevOps Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทนำสู่ Jenkins
- การสร้างอิมเมจ Docker ด้วย Jenkins
- การปรับใช้อัตโนมัติด้วย Jenkins
- Jenkins Pipeline เป็นโค้ดด้วย Jenkinsfile