Rumah > pembangunan bahagian belakang > Golang > Menguasai Pengurusan Imej Docker dengan Tindakan Github dan Pendaftaran Kontena

Menguasai Pengurusan Imej Docker dengan Tindakan Github dan Pendaftaran Kontena

Linda Hamilton
Lepaskan: 2025-01-28 14:04:10
asal
632 orang telah melayarinya

Menguasai Pengurusan Imej Docker dengan Tindakan GitHub: Panduan Komprehensif

rakan -rakan dan rakan sekerja sering bertanya, "Bagaimana anda menguruskan penyebaran anda dengan cekap?" Rahsia saya? Menggalakkan tugas berulang dan memberi tumpuan kepada apa yang benar -benar penting. Pos ini memperincikan bagaimana saya menggunakan tindakan GitHub dan pendaftaran kontena untuk Pengurusan Imej Docker Lancar - proses yang anda boleh meniru dengan mudah. ​​

Dalam landskap pembangunan perisian hari ini, CI/CD bukanlah kemewahan; itu satu keperluan. Bayangkan menggunakan kod dengan mudah sambil menikmati kopi - itulah kuasa menggabungkan tindakan github dan pendaftaran kontena untuk pengurusan imej Docker.

mengapa tindakan github dan pendaftaran kontena adalah penting

Mastering Docker Image Management with GitHub Actions and Container Registries

Tindakan GitHub: Rakan kongsi CI/CD anda

Tindakan GitHub adalah lebih daripada sekadar alat automasi; Ini penyelesaian CI/CD bersepadu anda, bertindak balas terhadap menolak kod, permintaan tarik, atau acara yang dijadualkan. Integrasi GitHub yang lancar menjadikannya sesuai untuk pasukan yang sudah menggunakan platform.

pendaftaran kontena: Repositori imej anda

Fikirkan pendaftaran kontena seperti Hub Docker atau GitHub Container Registry (GHCR) sebagai repositori yang selamat untuk imej Docker anda. Mereka menyediakan kawalan versi dan penempatan yang konsisten di semua persekitaran, dari pembangunan ke pengeluaran.

Cabaran Pengurusan Imej Docker biasa

Mastering Docker Image Management with GitHub Actions and Container Registries

    Proses manual:
  • tiada siapa yang menikmati tugas manual berulang.
  • Tagging Kompleks:
  • Menguruskan tag imej boleh menjadi sangat menggembirakan.
  • Kebimbangan keselamatan:
  • Mengamankan pendaftaran anda memerlukan perancangan yang teliti.
  • Masa membina lambat:
  • Menunggu imej binaan dapat mempengaruhi produktiviti yang signifikan.
  • menyelaraskan aliran kerja anda: Panduan langkah demi langkah

Langkah 1: Mengkonfigurasi aliran kerja GitHub anda

Buat direktori Mastering Docker Image Management with GitHub Actions and Container Registries di repositori anda dan tentukan fail aliran kerja YAML. Contoh ini membina, tag, dan menolak imej Docker:

.github/workflows Langkah 2: Menguruskan Rahsia dengan selamat

<code class="language-yaml">name: Build and Push Docker Image
on:
  push:
    branches:
      - main
jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout Code
      uses: actions/checkout@v4
    - name: Log in to GitHub Container Registry
      # Securely authenticate with GHCR
      run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
    - name: Build Docker Image
      # Build with 'latest' tag
      run: docker build -t ghcr.io/${{ github.repository }}/app:latest .
    - name: Push Docker Image to GHCR
      run: docker push ghcr.io/${{ github.repository }}/app:latest</code>
Salin selepas log masuk
Salin selepas log masuk
Simpan maklumat sensitif (kelayakan pendaftaran) dengan selamat dalam rahsia GitHub. Pergi ke tetapan Repositori anda

& gt; Rahsia dan Pembolehubah & GT; Tindakan

dan tambahkan rahsia seperti:

  • DOCKER_USERNAME
  • DOCKER_PASSWORD
  • untuk GHCR, rahsia
secara automatik disediakan dan disalurkan ke repositori anda.

GITHUB_TOKEN Langkah 3: Melaksanakan strategi penandaan yang mantap

Gunakan pembolehubah persekitaran github seperti

dan

untuk versi yang berkesan: GITHUB_SHA GITHUB_REF

Langkah 4: Mengoptimumkan kelajuan membina dengan caching
<code class="language-yaml">name: Build and Push Docker Image
on:
  push:
    branches:
      - main
jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout Code
      uses: actions/checkout@v4
    - name: Log in to GitHub Container Registry
      # Securely authenticate with GHCR
      run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
    - name: Build Docker Image
      # Build with 'latest' tag
      run: docker build -t ghcr.io/${{ github.repository }}/app:latest .
    - name: Push Docker Image to GHCR
      run: docker push ghcr.io/${{ github.repository }}/app:latest</code>
Salin selepas log masuk
Salin selepas log masuk

memanfaatkan cache membina Docker untuk mengelakkan kerja berlebihan:

Menangani cabaran biasa
<code class="language-yaml">- name: Build Docker Image with Tags
  # Tag with 'latest' and unique commit SHA
  run: |
    IMAGE_NAME=ghcr.io/${{ github.repository }}/app
    docker build -t $IMAGE_NAME:latest -t $IMAGE_NAME:${{ github.sha }} .

- name: Push Docker Images with Tags
  run: |
    docker push ghcr.io/${{ github.repository }}/app:latest
    docker push ghcr.io/${{ github.repository }}/app:${{ github.sha }}</code>
Salin selepas log masuk

Mastering Docker Image Management with GitHub Actions and Container Registries

Isu Pengesahan:
    Sahkan rahsia dan skop. Untuk GHCR, pastikan
  • mempunyai keizinan yang betul. GITHUB_TOKEN Mengehadkan kadar:
  • Gunakan token akses peribadi (PATS) dengan had yang lebih tinggi atau akaun hub docker seluruh organisasi.
  • saiz imej yang besar:
  • Mengoptimumkan dockerfiles menggunakan pelbagai peringkat membina, imej asas minimum (seperti alpine), dan mengeluarkan kebergantungan yang tidak perlu.
  • debugging:
  • set
  • dalam rahsia repositori untuk pembalakan terperinci. ACTIONS_STEP_DEBUG=true meneroka trend masa depan

Perisian Perisian Bahan (SBOM):
    alat seperti SYFT dan TRIVY menjana SBOM, meningkatkan keselamatan rantaian bekalan.
  • pematuhan OCI:
  • Memastikan keserasian imej kontena merentasi platform yang berbeza.
  • infrastruktur yang tidak berubah:
  • penyebaran kontena untuk hanyut dan konsistensi yang dikurangkan.
  • aplikasi dunia sebenar
Saya menggunakan tindakan GitHub untuk menggunakan imej Docker ke GHCR dan Docker Hub untuk projek saya, Travast (portal kerja yang dibina dengan GO). Automasi ini meningkatkan kecekapan pasukan kami dengan ketara.

Dengan mengikuti langkah -langkah ini, anda boleh mengautomasikan pengurusan imej Docker anda. Mulakan hari ini, menyelaraskan penyebaran anda, dan meningkatkan produktiviti anda. Pertimbangkan untuk menyokong kerja saya di KO-Fi jika anda dapati ini membantu.

bacaan selanjutnya

Dokumentasi Tindakan GitHub

    Docker Hub Registry
  • GitHub Container Registry
  • Syft - SBOM Generation
  • Trivy - Pengimbasan Keselamatan

Atas ialah kandungan terperinci Menguasai Pengurusan Imej Docker dengan Tindakan Github dan Pendaftaran Kontena. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan