Apa yang bisa kami bantu?

A. Pendahuluan

GitHub Packages adalah layanan hosting paket perangkat lunak yang memungkinkan pengembang untuk mempublikasikan, menyimpan, dan mengelola paket secara terpusat. Salah satu fitur utamanya adalah GitHub Container Registry (GHCR), yang dioptimalkan khusus untuk Docker Image sebagai alternatif dari Docker Hub.

Panduan ini membahas cara mengelola Docker Image secara manual melalui terminal (CLI). Dengan menggunakan GHCR, Anda dapat mengintegrasikan penyimpanan image langsung dengan repositori kode sumber Anda di GitHub, sehingga manajemen izin akses dan distribusi menjadi lebih efisien.

 

⚠️ Catatan Penting:

  • Pastikan Anda sudah menginstal Docker di mesin lokal atau VPS Anda. Jika belum, silakan dapat mengikuti panduan berikut: https://kb.biznetgio.com/id_ID/cara-install-docker-pada-linux-ubuntu-dan-windows-os 
  • Autentikasi ke GHCR tidak menggunakan password akun GitHub biasa, melainkan menggunakan Personal Access Token (PAT).
  • Pastikan hak akses repositori sudah sesuai (Public atau Private) sebelum melakukan push image.

 

B. Langkah-Langkah

1. Membuat Personal Access Token (PAT)

Sebelum melakukan login melalui terminal, Anda wajib memiliki token akses.

  • Buka GitHub Settings > Developer settings > Personal access tokens > Tokens (classic)
Gambar 1. Akses Menu Personal access tokens

 

  • Klik Generate new token (classic).
    Gambar 2. Klik Generate new token

 

  • Berikan centang pada izin: write:packages, read:packages, dan delete:packages.
    Gambar 3. Mengatur scope token

 

  • Klik Generate token. Setelah itu simpan token yang muncul (jangan sampai hilang).
    Gambar 4. Klik generate token

    Gambar 5. Simpan token yang sudah di-generate

 

2. Persiapan: Membuat Dockerfile Simpel

Sebagai contoh, kita akan membuat image Nginx kustom yang sederhana.

Buat file bernama Dockerfile di folder kosong dan isi sebagai berikut:

# Menggunakan image Nginx resmi sebagai dasar
FROM nginx:latest

# Menambahkan file HTML kustom ke dalam image
RUN echo '<h1>Halo dari GitHub Packages!</h1>' > /usr/share/nginx/html/index.html
Gambar 6. Isi file Dockerfile

 

3. Build Image Lokal

Lakukan build image dari Dockerfile yang baru saja dibuat. Beri nama yang mudah diingat, misalnya my-nginx-demo:

docker build -t my-nginx-demo .
Gambar 7. Build image lokal

 

4. Login ke GitHub Container Registry

Gunakan terminal untuk melakukan autentikasi ke server ghcr.io menggunakan username GitHub dan token yang baru saja dibuat:

echo "TOKEN_ANDA" | docker login ghcr.io -u USERNAME_GITHUB --password-stdin
Gambar 8. Login ke github container registry

 

Catatan: Jika muncul peringatan "credentials are stored unencrypted", ini berarti token Anda disimpan dalam teks biasa di server. Untuk keamanan tambahan, pastikan untuk melakukan docker logout ghcr.io setelah selesai melakukan push/pull, atau batasi akses file tersebut dengan perintah chmod 600 ~/.docker/config.json.

 

5. Memberi Tag pada Image

Agar Docker tahu bahwa image harus dikirim ke GitHub, Anda harus memberi tag dengan format ghcr.io/owner/nama-image:tag:

docker tag my-nginx-demo:latest ghcr.io/username-github/my-nginx-demo:latest
Gambar 9. Memberi tag untuk docker image

 

6. Push Image ke GitHub Packages

Unggah image yang sudah diberi tag ke dalam registry GitHub:

docker push ghcr.io/username-github/nama-repo/my-nginx-demo:latest
Gambar 10. Push docker image ke github packages

 

7. Menarik Image (Pull) dari GitHub

Untuk menggunakan image tersebut di server lain atau VPS, pastikan sudah melakukan login terlebih dahulu (seperti Langkah 4), lalu jalankan:

docker pull ghcr.io/username-github/nama-repo/my-nginx-demo:latest
Gambar 11. Pull docker image dari github packages

 

8. Verifikasi di Dashboard GitHub

Buka profil atau repositori GitHub Anda untuk memastikan image sudah terdaftar dan siap digunakan. 

Gambar 12. Verifikasi packages yang sudah di-push pada github

 

C. Penutup

Selamat! Anda sudah berhasil mengelola Docker Image menggunakan GitHub Packages (GHCR). Dengan metode ini, distribusi container image Anda menjadi lebih terintegrasi dengan ekosistem GitHub.


Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silakan hubungi Support Biznet GIO melalui email support@biznetgio.com atau live chat maupun WA ke website www.biznetgio.com dan bisa juga melalui telepon ke nomor (021) 5714567.