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

การส่งอิมเมจไปยังรีจิสทรี

กำหนดค่าเวิร์กโฟลว์ให้ส่งอิมเมจ Docker ที่สร้างแล้วไปยังรีจิสทรีคอนเทนเนอร์ เช่น Docker Hub หรือ GitHub Container Registry

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

รีจิสทรีคอนเทนเนอร์คืออะไร

รีจิสทรีคอนเทนเนอร์ คือบริการจัดเก็บออนไลน์ที่ปลอดภัยสำหรับอิมเมจด็อกเกอร์ ลองนึกภาพว่าเป็นไดรฟ์บนคลาวด์ที่ออกแบบมาโดยเฉพาะสำหรับแพ็กเกจของแอปพลิเคชัน

  • จัดเก็บอิมเมจเวอร์ชันต่าง ๆ
  • ช่วยให้แชร์อิมเมจกับผู้อื่นได้ง่าย
  • มีความสำคัญต่อการนำไปใช้งานในสภาพแวดล้อมต่าง ๆ

เหตุใดจึงใช้รีจิสทรี

รีจิสทรีมีความสำคัญต่อการพัฒนาซอฟต์แวร์สมัยใหม่ โดยให้ประโยชน์สำคัญหลายประการ:

  • การแชร์อิมเมจ: แจกจ่ายอิมเมจแอปพลิเคชันของคุณได้อย่างง่ายดาย
  • การควบคุมเวอร์ชัน: จัดเก็บและจัดการแอปพลิเคชันเวอร์ชันต่าง ๆ
  • การนำไปใช้งานที่เชื่อถือได้: ทำให้มั่นใจว่าการนำไปใช้งานในสภาพแวดล้อมต่าง ๆ มีความสม่ำเสมอ
  • ความปลอดภัย: รีจิสทรีจำนวนมากมีการสแกนหาช่องโหว่

บริการรีจิสทรีทั่วไป

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

  • ด็อกเกอร์ ฮับ: รีจิสทรีสาธารณะที่มีการใช้งานอย่างแพร่หลาย เหมาะสำหรับแชร์อิมเมจสาธารณะและโครงการส่วนตัว
  • รีจิสทรีคอนเทนเนอร์ของ GitHub (GHCR): ผสานการทำงานกับที่เก็บโค้ดของ GitHub ได้อย่างใกล้ชิด เหมาะอย่างยิ่งสำหรับอิมเมจส่วนตัวและองค์กรที่ใช้ GitHub อยู่แล้ว

ผู้ให้บริการคลาวด์รายใหญ่รายอื่นก็มีรีจิสทรีของตนเองเช่นกัน เช่น AWS ECR หรือรีจิสทรีคอนเทนเนอร์ของกูเกิล

การยืนยันตัวตนกับรีจิสทรี

ก่อนที่จะส่งอิมเมจไปยังรีจิสทรีได้ คุณต้องพิสูจน์ว่าคุณเป็นใคร กระบวนการนี้เรียกว่า การยืนยันตัวตน หรือ 'การเข้าสู่ระบบ'

โดยทั่วไปคุณจะระบุชื่อผู้ใช้และโทเค็นการเข้าถึงส่วนบุคคล (PAT) หรือรหัสผ่าน ข้อมูลรับรองเหล่านี้ช่วยให้มั่นใจว่าเฉพาะผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่จะส่งหรือดึงอิมเมจจากที่เก็บโค้ดส่วนตัวของคุณได้

การใช้ docker/login-action

ในกระบวนการทำงานของ GitHub วิธีที่ดีที่สุดในการยืนยันตัวตนกับรีจิสทรีส่วนใหญ่ที่เข้ากันได้กับด็อกเกอร์คือการใช้ docker/login-action

การทำงานนี้จะเข้าสู่ระบบรีจิสทรีที่ระบุอย่างปลอดภัย ทำให้ขั้นตอนถัดไปสามารถส่งอิมเมจได้ โดยรับ username และ password เป็นข้อมูลเข้า

การส่งอิมเมจไปยังด็อกเกอร์ ฮับ

หากต้องการส่งอิมเมจไปยังด็อกเกอร์ ฮับ กระบวนการทำงานของคุณต้องทำสิ่งต่อไปนี้:

  1. เข้าสู่ระบบ: ใช้ docker/login-action พร้อมชื่อผู้ใช้ด็อกเกอร์ ฮับและโทเค็นการเข้าถึงส่วนบุคคล (PAT) ที่จัดเก็บเป็นข้อมูลลับของ GitHub
  2. สร้างและส่ง: ใช้ docker/build-push-action เพื่อสร้างอิมเมจและตั้งค่า push: true ตรวจสอบให้แน่ใจว่าแท็กอิมเมจมีชื่อผู้ใช้ด็อกเกอร์ ฮับอยู่ด้วย เช่น your_username/my-app:latest

ตัวอย่างกระบวนการทำงานของด็อกเกอร์ ฮับ

นี่คือตัวอย่างกระบวนการทำงานของ GitHub สำหรับสร้างและส่งอิมเมจด็อกเกอร์ไปยังด็อกเกอร์ ฮับ โปรดอย่าลืมตั้งค่า DOCKER_USERNAME และ DOCKER_TOKEN เป็นข้อมูลลับของ GitHub ในที่เก็บโค้ดของคุณ

name: Publish Docker image to Docker Hub

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Log in to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_TOKEN }}

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ${{ secrets.DOCKER_USERNAME }}/my-app:latest

การส่งอิมเมจไปยัง GHCR

รีจิสทรีคอนเทนเนอร์ของ GitHub (GHCR) มีการเชื่อมต่อที่ราบรื่น ความแตกต่างสำคัญสำหรับ GHCR มีดังนี้:

  • การยืนยันตัวตน: คุณสามารถใช้ GITHUB_TOKEN ในตัวเพื่อยืนยันตัวตนได้ ตั้งค่า username: ${{ github.actor }} และ password: ${{ secrets.GITHUB_TOKEN }}
  • สิทธิ์: งานของคุณต้องมีสิทธิ์ packages: write
  • การกำหนดแท็กอิมเมจ: อิมเมจจะมีแท็กในรูปแบบ ghcr.io/<OWNER>/<REPOSITORY>:<TAG>

ตัวอย่างกระบวนการทำงานของ GHCR

กระบวนการทำงานนี้สาธิตการส่งอิมเมจไปยังรีจิสทรีคอนเทนเนอร์ของ GitHub โปรดสังเกตบล็อก permissions และรูปแบบแท็กอิมเมจ

name: Publish Docker image to GHCR

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write # Required for GHCR

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Log in to GHCR
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ghcr.io/${{ github.repository }}:latest

ตรวจสอบความเข้าใจของคุณ

มาทบทวนสิ่งที่คุณได้เรียนรู้เกี่ยวกับการส่งอิมเมจไปยังรีจิสทรีคอนเทนเนอร์กันอย่างรวดเร็ว

สรุป: ส่งอิมเมจของคุณ!

ยอดเยี่ยมมาก! คุณได้เรียนรู้วิธีส่งอิมเมจ Docker ไปยังรีจิสทรีคอนเทนเนอร์โดยใช้ GitHub Actions แล้ว

  • รีจิสทรีคอนเทนเนอร์ใช้จัดเก็บและจัดการอิมเมจ Docker ของคุณ
  • การยืนยันตัวตนด้วยข้อมูลรับรองเป็นขั้นตอนแรกที่สำคัญ
  • docker/login-action ช่วยให้คุณเข้าสู่ระบบได้อย่างปลอดภัย
  • คุณได้ดูตัวอย่างการใช้งานทั้ง Docker Hub และ GitHub Container Registry พร้อมทำความเข้าใจข้อกำหนดเฉพาะด้านการยืนยันตัวตนและการติดแท็กของแต่ละบริการ

ถัดไป คุณจะได้เรียนรู้วิธีปรับใช้อิมเมจเหล่านี้กับ Kubernetes!

คำถามที่พบบ่อย

บทเรียน “การส่งอิมเมจไปยังรีจิสทรี” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การส่งอิมเมจไปยังรีจิสทรี” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CI/CD with GitHub Actions & DevOps Pipelines ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การส่งอิมเมจไปยังรีจิสทรี”

กำหนดค่าเวิร์กโฟลว์ให้ส่งอิมเมจ Docker ที่สร้างแล้วไปยังรีจิสทรีคอนเทนเนอร์ เช่น Docker Hub หรือ GitHub Container Registry คุณปฏิบัติ 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 ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

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

บทเรียน 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