EN: Read in English
Dunia C2: Pipeline Container
Push ke GHCR
Anda akan belajar: push image ke registry GitHub dengan token job itu sendiri.
Teks BM belum disemak oleh penutur asli.
Disemak dengan GitHub Actions 2026-10 pada 31 Okt 2026
Masalahnya
Pilih satu event. Tekan Run dan tengok tali sawat.
Push ke main bina image, kemudian push ke ghcr.io ditolak. Stesen build jadi merah.
Fail workflow .github/workflows/publish.yml
name: Publish on: push: branches: [main] permissions: contents: read jobs: image: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: docker/setup-buildx-action@v4 - uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - uses: docker/build-push-action@v7 with: push: true tags: ghcr.io/${{ github.repository }}:${{ github.sha }}
Tali sawat
Push ke main · main
Tekan Run. Pek siap dibina, kemudian tersekat di pintu peti sejuk: denied: permission_denied: write_package. Maksudnya: kunci job ini tak boleh masukkan pek.
Tengok
Ketik baris yang serahkan pas job.
0 daripada 1 dijumpai
GHCR: GitHub Container Registry (ghcr.io): peti sejuk kedai milik GitHub untuk image. (ghcr.io) ialah peti sejuk kedai milik GitHub. Job log masuk dengan GITHUB_TOKEN. Ia pas yang tamat bila job tamat.
Cuba
Apa yang pas job ini perlukan? Beri yang paling sedikit.
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Cuba
Sekarang baiki baris kuning. Pilih permissions, kemudian tekan Run.
Tali sawat merah. Betulkan baris kuning, kemudian run semula.
Fail workflow .github/workflows/publish.yml
name: Publish on: push: branches: [main] permissions: contents: read jobs: image: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: docker/setup-buildx-action@v4 - uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - uses: docker/build-push-action@v7 with: push: true tags: ghcr.io/${{ github.repository }}:${{ github.sha }}
Kuning: baris 5–6. Anda boleh ubah baris ini.
Tali sawat
Push ke main · main
Petunjuk
Kunci peti sejuk dipanggil packages. Biarkan contents pada read.Teka
Mei buka PR dari fork dia. Workflow ini push pada PR juga. Apa jadi?
Pilih satu jawapan.
Semak
Bina arahan yang tarik versi 1.2.0 dari GHCR.
Ketik kepingan ikut turutan yang betul.
Petunjuk
Nama image di GHCR semuanya huruf kecil.Anda berjaya!
Kini anda boleh push image ke GHCR dengan kunci yang perlu sahaja.
Nak tahu lebih (pilihan)
Package yang di-push dengan GITHUB_TOKEN ikut keterlihatan dan akses repo itu. Nama pemilik berhuruf besar merosakkan ghcr.io/${{ github.repository }}. metadata-action tukar nama image jadi huruf kecil untuk anda.
Latihan sebenar (pilihan), dalam repo latihan awam:
Misi sebenar
0 daripada 4 langkah siap · Tanda anda disimpan.
English
Press Run. The pack is built, then stopped at the freezer door: denied: permission_denied: write_package. Plain words: this job’s key can’t put packs in.
GHCR (ghcr.io) is GitHub’s own shop freezer. The job logs in with GITHUB_TOKEN. It’s a pass that ends when the job ends.
What does this job’s pass need? Give it the least.
Now fix the yellow lines. Pick the permissions, then press Run.
Mei opens a PR from her fork. The workflow pushes on PRs too. What happens?
Build the command that pulls version 1.2.0 from GHCR.
You can now push images to GHCR with only the keys needed.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Working with the Container registry · Publishing Docker images · GITHUB_TOKEN permissions
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?