การสร้างอิมเมจ Docker ด้วยแอ็กชัน
ทำให้กระบวนการสร้างอิมเมจ Docker สำหรับแอปพลิเคชันเป็นอัตโนมัติโดยตรงภายในเวิร์กโฟลว์ GitHub Actions
การสร้างอิมเมจ Docker ด้วยแอ็กชัน เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
อิมเมจด็อกเกอร์คืออะไร
ยินดีต้อนรับ ในบทเรียนนี้ เราจะเรียนรู้การสร้างอิมเมจด็อกเกอร์โดยใช้การทำงานของ GitHub
ก่อนอื่น อิมเมจด็อกเกอร์ คืออะไร ลองนึกภาพว่าเป็นแพ็กเกจแบบเบา แยกทำงานได้โดยอิสระ และเรียกใช้งานได้ ซึ่งรวมทุกสิ่งที่จำเป็นสำหรับการเรียกใช้ซอฟต์แวร์ส่วนหนึ่งไว้ด้วยกัน:
- โค้ดของคุณ
- สภาพแวดล้อมขณะทำงาน เช่น Java และไพธอน
- เครื่องมือและไลบรารีของระบบ
- ไฟล์การกำหนดค่า
อิมเมจนี้เปรียบเสมือนพิมพ์เขียวสำหรับสร้าง คอนเทนเนอร์ด็อกเกอร์ ซึ่งช่วยให้แอปพลิเคชันของคุณทำงานได้อย่างสม่ำเสมอในสภาพแวดล้อมที่แตกต่างกัน
เหตุใดจึงควรทำให้การสร้างอิมเมจด็อกเกอร์เป็นอัตโนมัติ
การสร้างอิมเมจด็อกเกอร์ด้วยตนเองอาจเป็นงานซ้ำ ๆ และเกิดข้อผิดพลาดได้ง่าย นี่คือจุดที่ ระบบอัตโนมัติ มีประโยชน์
เมื่อผสานการสร้างอิมเมจด็อกเกอร์เข้ากับกระบวนการ CI/CD โดยใช้การทำงานของ GitHub คุณจะได้รับประโยชน์ดังนี้:
- ความสม่ำเสมอ: การสร้างทุกครั้งทำตามขั้นตอนเดียวกัน
- ความเร็ว: การสร้างอัตโนมัติเร็วกว่าการสร้างด้วยตนเอง
- ความน่าเชื่อถือ: ลดข้อผิดพลาดจากมนุษย์
- การเชื่อมต่อ: การสร้างจะเริ่มต้นโดยอัตโนมัติเมื่อโค้ดมีการเปลี่ยนแปลง
นี่คือแนวปฏิบัติหลักใน DevOps สมัยใหม่
พิมพ์เขียวไฟล์คำสั่งด็อกเกอร์
ไฟล์คำสั่งด็อกเกอร์ คือไฟล์ข้อความที่มีคำสั่งทั้งหมดสำหรับประกอบอิมเมจด็อกเกอร์ เปรียบเสมือนสูตรอาหาร
นี่คือตัวอย่างไฟล์คำสั่งด็อกเกอร์แบบง่ายมาก:
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello from Docker!"]ทำความเข้าใจไฟล์คำสั่งด็อกเกอร์
มาลองแยกดูรายละเอียดของ Dockerfile แบบง่ายนี้กัน:
FROM alpine:latest: ระบุอิมเมจพื้นฐาน เราเริ่มต้นด้วยระบบลินุกซ์ขนาดเล็กที่ชื่อว่าแอลไพน์WORKDIR /app: ตั้งค่าไดเรกทอรีทำงานภายในอิมเมจCOPY . .: คัดลอกไฟล์ทั้งหมดจากไดเรกทอรีโครงการของคุณไปยังไดเรกทอรี/appภายในอิมเมจCMD ["echo", "Hello from Docker!"]: คำสั่งนี้จะทำงานเมื่อคอนเทนเนอร์เริ่มต้นจากอิมเมจนี้
ไฟล์นี้อยู่ที่ไดเรกทอรีรากของโครงการ
การตั้งค่ากระบวนการทำงาน
หากต้องการสร้างอิมเมจด็อกเกอร์ด้วยการทำงานของ GitHub คุณจะต้องสร้างไฟล์ YAML เช่น .github/workflows/docker-build.yml ในที่เก็บโค้ดของคุณ
ไฟล์นี้กำหนด กระบวนการทำงาน ของคุณ ซึ่งเป็นชุดขั้นตอนอัตโนมัติ
กระบวนการทำงานพื้นฐานสำหรับสร้างอิมเมจมักประกอบด้วย:
- ดึงโค้ดของคุณออกมา
- ตั้งค่าสภาพแวดล้อมสำหรับสร้างอิมเมจด็อกเกอร์
- สร้างอิมเมจด็อกเกอร์
ขั้นตอนที่ 1: รับโค้ดของคุณ
ขั้นตอนแรกในกระบวนการทำงานของ GitHub แทบทุกกระบวนการคือการรับโค้ดจากที่เก็บโค้ดของคุณ โดยใช้การทำงาน actions/checkout
การทำงานนี้จะโคลนที่เก็บโค้ดของคุณไปยังสภาพแวดล้อมประมวลผล ทำให้มีไฟล์คำสั่งด็อกเกอร์และโค้ดแอปพลิเคชันพร้อมสำหรับกระบวนการสร้าง
ลักษณะการใช้งานในไฟล์กระบวนการทำงานมีดังนี้:
- name: Checkout repository code
uses: actions/checkout@v4ขั้นตอนที่ 2: ตั้งค่า Docker Buildx
ถัดไป เราต้องตั้งค่าสภาพแวดล้อมสำหรับสร้างอิมเมจด็อกเกอร์ ขอแนะนำให้ใช้ docker/setup-buildx-action เป็นอย่างยิ่ง
บิลด์เอ็กซ์ คือองค์ประกอบของด็อกเกอร์ที่เพิ่มความสามารถในการสร้างของด็อกเกอร์ และรองรับฟีเจอร์ขั้นสูง เช่น การสร้างสำหรับหลายแพลตฟอร์ม
เพิ่มขั้นตอนนี้ลงในกระบวนการทำงานของคุณ:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3ขั้นตอนที่ 3: สร้างอิมเมจด็อกเกอร์
มาถึงขั้นตอนหลัก นั่นคือการสร้างอิมเมจ เราจะใช้ docker/build-push-action สำหรับงานนี้
ตัวเลือกสำคัญมีดังนี้:
context: .: ระบุบริบทการสร้าง ซึ่งโดยปกติคือไดเรกทอรีรากของที่เก็บโค้ดpush: false: ในตอนนี้ เราจะสร้างอิมเมจเท่านั้นโดยไม่ส่งไปยังรีจิสทรี เราจะกล่าวถึงการส่งอิมเมจในบทเรียนถัดไปtags: my-app:latest: กำหนดชื่อและแท็กให้กับอิมเมจ
- name: Build and tag Docker image
uses: docker/build-push-action@v5
with:
context: .
push: false
tags: my-app:latestตัวอย่างกระบวนการทำงานสำหรับการสร้างทั้งหมด
นี่คือกระบวนการทำงานของ GitHub ที่สมบูรณ์สำหรับสร้างอิมเมจด็อกเกอร์ โปรดจำไว้ว่า YAML นี้ต้องใส่ไว้ใน .github/workflows/docker-build.yml
กระบวนการทำงานนี้จะเริ่มทำงานทุกครั้งที่มี push ไปยังที่เก็บโค้ดของคุณ
name: Build Simple Docker Image
on: [push]
jobs:
build-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and tag Docker image
uses: docker/build-push-action@v5
with:
context: .
push: false
tags: my-app:latestแบบทดสอบสั้น
มาทดสอบความเข้าใจของคุณเกี่ยวกับการสร้างอิมเมจด็อกเกอร์ด้วยการทำงานของ GitHub กัน
สรุป: การสร้างอิมเมจด็อกเกอร์
ทำได้ดีมาก คุณได้เรียนรู้พื้นฐานของการทำให้การสร้างอิมเมจด็อกเกอร์เป็นอัตโนมัติด้วยการทำงานของ GitHub แล้ว
เราได้ครอบคลุมหัวข้อต่อไปนี้:
- อิมเมจด็อกเกอร์คืออะไรและเหตุใดจึงสำคัญ
- บทบาทของ
Dockerfileในฐานะพิมพ์เขียวของอิมเมจ - การตั้งค่ากระบวนการทำงานพื้นฐานของ GitHub
- การใช้การทำงานที่จำเป็น เช่น
actions/checkout,docker/setup-buildx-actionและdocker/build-push-action
ในบทเรียนถัดไป เราจะสำรวจวิธีส่งอิมเมจที่สร้างแล้วไปยังรีจิสทรีคอนเทนเนอร์
คำถามที่พบบ่อย
บทเรียน “การสร้างอิมเมจ Docker ด้วยแอ็กชัน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้างอิมเมจ Docker ด้วยแอ็กชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้างอิมเมจ Docker ด้วยแอ็กชัน”
ทำให้กระบวนการสร้างอิมเมจ Docker สำหรับแอปพลิเคชันเป็นอัตโนมัติโดยตรงภายในเวิร์กโฟลว์ GitHub Actions คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้างอิมเมจ Docker ด้วยแอ็กชัน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างอิมเมจ Docker ด้วยแอ็กชัน
- การส่งอิมเมจไปยังรีจิสทรี
- การนำไปใช้บน Kubernetes ด้วยแอ็กชัน
- ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD