Memecahkan masalah image container

Pelajari langkah-langkah pemecahan masalah yang mungkin berguna jika Anda mengalami masalah saat mengelola image container di Artifact Registry.

Sintaksis Project ID di Docker CLI

Karena cara Docker memperlakukan titik dua, saat menggunakan Docker CLI, Anda harus mengganti titik dua (:) di project ID dengan garis miring (/). Untuk mengetahui informasi selengkapnya, lihat Project yang tercakup dalam domain.

Tidak dapat menarik gambar atau men-deploy ke Google Cloud lingkungan runtime

Periksa hal-hal berikut:

  1. Pastikan jalur lengkap gambar yang Anda kirim sudah benar. Jalur harus menyertakan nama host registry, Google Cloud, project ID, repositori, dan image. Contoh:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
    Untuk mengetahui informasi selengkapnya, lihat Nama repositori dan image.
  2. Pastikan akun yang menarik image memiliki izin yang benar untuk membaca dari repositori. Jika Anda telah menonaktifkan pemberian peran otomatis ke akun layanan, maka Anda harus memberikan peran Artifact Registry ke akun layanan runtime.
    • Untuk akun layanan Compute Engine, Cloud Run, dan Google Kubernetes Engine, Anda harus memberikan peran Artifact Registry Reader (roles/artifactregistry.reader) ke akun layanan runtime.
    • Untuk akun layanan Cloud Build Anda, Anda harus memberikan peran Artifact Registry Writer (roles/artifactregistry.writer) ke akun layanan yang menjalankan build.
    • Jika Anda menggunakan Docker atau alat pihak ketiga lainnya, Anda harus:

Tidak dapat mengirim image ke Artifact Registry

Coba langkah berikut untuk mengatasinya:

  1. Pastikan repositori ada. Tidak seperti Container Registry, pembuatan repositori adalah operasi terpisah dari mengirimkan image pertama. Jika repositori tidak ada, maka buat repositori tersebut.
  2. Pastikan jalur lengkap gambar yang Anda kirim sudah benar. Jalur harus menyertakan nama host registry,project ID Google Cloud , repositori, dan image. Contoh:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
      

    Setiap repositori Artifact Registry adalah resource terpisah, sehingga Anda tidak dapat mengirimkan image ke jalur tanpa repositori. Misalnya, us-west1-docker.pkg.dev/my-project/my-image:v1 adalah jalur gambar yang tidak valid.

    Untuk mengetahui informasi selengkapnya, lihat Nama repositori dan image.

  3. Verifikasi bahwa akun yang mengirimkan image memiliki izin untuk menulis ke repositori. Jika Anda telah menonaktifkan pemberian peran otomatis ke akun layanan, maka Anda harus memberikan peran Artifact Registry ke akun layanan runtime.
    • Untuk akun layanan Compute Engine, Cloud Run, dan Google Kubernetes Engine, Anda harus memberikan peran Penulis Artifact Registry (roles/artifactregistry.writer) ke akun layanan runtime.
    • Untuk akun layanan Cloud Build Anda, Anda harus memberikan peran Penulis Artifact Registry (roles/artifactregistry.writer) ke akun layanan yang menjalankan build.
  4. Jika Artifact Registry menampilkan pesan The repository has enabled tag immutability, berarti keabadian tag dikonfigurasi untuk repositori. Anda tidak dapat mengirimkan gambar dengan tag yang sudah digunakan untuk versi lain dari gambar yang sama di repositori. Coba kirimkan image lagi dengan tag yang tidak digunakan oleh versi image tersimpan lainnya.

    Untuk memverifikasi bahwa repositori dikonfigurasi untuk tag image yang tidak dapat diubah, periksa kolom Tag image yang tidak dapat diubah dalam daftar repositori di Google Cloud konsol atau jalankan perintah berikut:

    gcloud artifacts repositories describe REPOSITORY \
          --project=PROJECT-ID \
          --location=LOCATION
      

Pesan ImagePullBackOff dan ErrImagePull

Pesan dengan ImagePullBackOff dan ErrImagePull menunjukkan bahwa image tidak dapat ditarik dari registry oleh GKE.