การส่งอิมเมจไปยังรีจิสทรี
กำหนดค่าเวิร์กโฟลว์ให้ส่งอิมเมจ 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 เป็นข้อมูลเข้า
การส่งอิมเมจไปยังด็อกเกอร์ ฮับ
หากต้องการส่งอิมเมจไปยังด็อกเกอร์ ฮับ กระบวนการทำงานของคุณต้องทำสิ่งต่อไปนี้:
- เข้าสู่ระบบ: ใช้
docker/login-actionพร้อมชื่อผู้ใช้ด็อกเกอร์ ฮับและโทเค็นการเข้าถึงส่วนบุคคล (PAT) ที่จัดเก็บเป็นข้อมูลลับของ GitHub - สร้างและส่ง: ใช้
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างอิมเมจ Docker ด้วยแอ็กชัน
- การส่งอิมเมจไปยังรีจิสทรี
- การนำไปใช้บน Kubernetes ด้วยแอ็กชัน
- ชาร์ต Helm และแมนิเฟสต์ Kubernetes ใน CI/CD