0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · บทเรียน

การสร้างอิมเมจ Docker ด้วยแอ็กชัน

ทำให้กระบวนการสร้างอิมเมจ Docker สำหรับแอปพลิเคชันเป็นอัตโนมัติโดยตรงภายในเวิร์กโฟลว์ GitHub Actions

การสร้างอิมเมจ Docker ด้วยแอ็กชัน เป็นบทเรียน CI/CD with GitHub Actions & DevOps Pipelines ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CI/CD with GitHub Actions & DevOps Pipelines และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 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. ดึงโค้ดของคุณออกมา
  2. ตั้งค่าสภาพแวดล้อมสำหรับสร้างอิมเมจด็อกเกอร์
  3. สร้างอิมเมจด็อกเกอร์

ขั้นตอนที่ 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) และปลดล็อคส่วนที่เหลือของคอร์ส CI/CD with GitHub Actions & DevOps Pipelines ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างอิมเมจ Docker ด้วยแอ็กชัน”

ทำให้กระบวนการสร้างอิมเมจ Docker สำหรับแอปพลิเคชันเป็นอัตโนมัติโดยตรงภายในเวิร์กโฟลว์ GitHub Actions คุณปฏิบัติ CI/CD with GitHub Actions & DevOps Pipelines ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CI/CD with GitHub Actions & DevOps Pipelines หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน CI/CD with GitHub Actions & DevOps Pipelines บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างอิมเมจ Docker ด้วยแอ็กชัน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน CI/CD with GitHub Actions & DevOps Pipelines นี้ได้ไหม

ได้ บทเรียน CI/CD with GitHub Actions & DevOps Pipelines ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้างอิมเมจ Docker ด้วยแอ็กชัน
  2. การส่งอิมเมจไปยังรีจิสทรี
  3. การนำไปใช้บน Kubernetes ด้วยแอ็กชัน
  4. ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD
← กลับไปที่ CI/CD with GitHub Actions & DevOps Pipelines