Peta dunia

 

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.

Apa yang berlaku di GitHub

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.

      Apa yang berlaku di GitHub

      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.

      Pilih satu pembetulan

      Tali sawat

      Push ke main · main

      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.

      …

      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.