GitHub memiliki fitur yang disebut Tindakan GitHub yang menjalankan pembuatan otomatis, pengujian, dan skrip lainnya setiap kali Anda membuat perubahan pada repositori. Salah satu kasus penggunaan praktis dari hal ini adalah secara otomatis membuat dan mendorong container Docker ke registry container.
Register Kontainer Baru GitHub
Registri kontainer baru GitHub, yang disebut GitHub Container Registry, sedikit berbeda dari kebanyakan pendaftar seperti Docker Hub. Ini berfungsi sebagai perpanjangan dari Paket GitHub, sistem penyimpanan paket yang mengaitkan paket dengan repositori kode sumbernya. Paket dapat dibuat dan didorong dari repositori, seringkali secara otomatis dengan bantuan pipeline Tindakan GitHub.
GitHub Container Registry hanya menambahkan kompatibilitas khusus Docker ke Paket GitHub, membuatnya berfungsi seperti registri kontainer untuk tujuan menjalankan docker pull
dan perintah CLI lainnya.
Anda tidak perlu memublikasikan ke penampung registri GitHub—Anda masih dapat memublikasikan ke Docker Hub dari tindakan dengan beberapa konfigurasi. Tindakan bawaan bekerja dengan GHCR di luar kotak, jadi penyiapannya jauh lebih mudah.
Cara Menyiapkan Pembuatan Otomatis ke Paket GitHub
Untuk memulai, Anda memerlukan repositori. Bahkan jika Anda hanya menerbitkan paket, Anda masih memerlukan repo, karena format untuk GHCR adalah:
ghcr.io/username/repository/image:version
Siapkan repo, lalu klik "Tindakan" untuk membuat tindakan baru. Di bagian “Alur Kerja Integrasi Berkelanjutan Lainnya”, klik “Publikasikan Penampung Docker”.
Ini menghasilkan template starter, yang memerlukan beberapa perubahan agar berfungsi. Pertama, IMAGE_NAME
variabel perlu diubah menjadi nama gambar Anda.
Kemudian, pada baris 39, Anda akan menemukan di mana ia masuk ke GHCR.
run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin
Saat ini, satu-satunya skema otentikasi yang didukung adalah Personal Access Tokens (PATs), yang tidak bagus untuk keamanan karena memberikan akses ke seluruh akun. GitHub mengetahui hal ini, dan sedang mengerjakan perbaikan yang lebih baik untuk masa mendatang, tetapi sementara itu jika Anda ingin menggunakan GHCR dari alur kerja GitHub Actions, Anda harus menyimpan PAT di Rahasia untuk repositori Anda, karena jelas hanya menempelkan di sini akan mengerikan.
Pertama, Anda harus menuju ke Pengaturan> Pengaturan Pengembang> Token Akses Pribadi dan buat token baru. Token ini membutuhkan write:packages
dan delete:packages
pengaturan. Perhatikan bahwa untuk beberapa alasan, memilih paket tulis secara otomatis memilih "Kontrol Penuh Repositori", yang harus Anda hapus centangnya.
Kemudian, buka pengaturan repositori, dan buat rahasia baru bernama CR_PAT
, untuk mencocokkan tindakan.
Kembali ke tindakan, dan klik “Mulai Komit” untuk mendorongnya ke repositori.
Setelah di-commit, itu akan memicu alur kerja untuk menjalankan dan membangun paket. Anda dapat memantau status semua alur kerja yang berjalan di bawah tab "Tindakan". Di sini, gagal karena tindakan default mengharapkan ada pengujian untuk dijalankan, yang tidak dimiliki gambar ini.
Setelah berhasil, Anda akan melihat wadah di registri, di bawah "Paket" di halaman utama repositori, atau di bawah paket di profil Anda.