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:
- Pastikan jalur lengkap gambar yang Anda kirim sudah benar. Jalur harus menyertakan nama host registry, Google Cloud,
project ID, repositori, dan image. Contoh:
Untuk mengetahui informasi selengkapnya, lihat Nama repositori dan image.us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1 - 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:
- Memberikan izin ke akun yang berinteraksi dengan repositori.
- Konfigurasi klien untuk mengautentikasi ke repositori.
Tidak dapat mengirim image ke Artifact Registry
Coba langkah berikut untuk mengatasinya:
- Pastikan repositori ada. Tidak seperti Container Registry, pembuatan repositori adalah operasi terpisah dari mengirimkan image pertama. Jika repositori tidak ada, maka buat repositori tersebut.
- 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:v1Setiap 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:v1adalah jalur gambar yang tidak valid.Untuk mengetahui informasi selengkapnya, lihat Nama repositori dan image.
- 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. - 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.
- Verifikasi persyaratan untuk menarik dari Artifact Registry.
- Tinjau Memecahkan masalah penarikan image dalam dokumentasi GKE.