Analisis diagnosis menyediakan fitur diagnosis pembuatan untuk membantu Anda mengidentifikasi pengecualian, risiko potensial, dan peluang optimasi selama proses pembuatan image. Topik ini menjelaskan item pemeriksaan dari diagnosis pembuatan serta solusi yang sesuai.
Ikhtisar diagnosis pembuatan image
Fitur diagnosis pembuatan image menggabungkan pengalaman ahli dan kemampuan model bahasa besar Tongyi Qianwen (LLM) untuk membentuk mode diagnosis ganda berdasarkan pengetahuan ahli dan AI. Pendekatan ini bertujuan menemukan akar penyebab masalah secara tepat dan memberikan saran perbaikan.
Saat menggunakan fitur diagnosis pembuatan image, Alibaba Cloud mengumpulkan data relevan tentang repositori image Anda, termasuk informasi repositori image, konfigurasi pembuatan image, log tugas pembuatan, dan riwayat pembuatan image. Jangan menyimpan data sensitif dalam konfigurasi pembuatan image atau mengeluarkan data sensitif ke log tugas pembuatan. Untuk informasi lebih lanjut, lihat Catatan Penggunaan.
Fitur diagnosis pembuatan mencakup:
Pendeteksian Aturan: Meliputi pemeriksaan instruksi dan analisis log kesalahan.
Analisis Akar Penyebab: Mencakup identifikasi akar penyebab dan saran perbaikan.
Dengan mengumpulkan data relevan dari repositori image kontainer dan mengidentifikasi situasi abnormal, diagnosis pembuatan image melakukan diagnosis mendalam untuk menemukan akar penyebab masalah serta mengusulkan solusi yang sesuai.
Proses diagnosis
Diagnosis pembuatan image pertama-tama mengumpulkan data relevan tentang repositori image kontainer, lalu melakukan diagnosis pengecualian mendalam. Setelah tugas diagnosis dimulai, proses melalui tahap-tahap berikut:
Pra-pemrosesan Data: Mengumpulkan data yang diperlukan untuk diagnosis, seperti status instance, konfigurasi repositori, informasi aturan pembuatan, dan log pembuatan, serta menganalisis dengan cepat pengecualian yang terjadi selama proses pembuatan.
Pendeteksian Aturan: Berdasarkan data yang dikumpulkan, menganalisis pengecualian, item risiko potensial, dan peluang optimasi selama proses pembuatan.
Analisis Akar Penyebab: Berdasarkan data yang dikumpulkan dan item deteksi, secara otomatis menganalisis penyebab masalah dan memberikan saran perbaikan.

Hasil diagnosis
Hasil diagnosis mencakup:
Item yang Perlu Diperbaiki: Mencakup akar penyebab pengecualian, saran perbaikan, dan lokalisasi pengecualian.
Diagnosis AI: Berdasarkan detail pengecualian, melakukan analisis mendalam pada instruksi pembuatan atau item konfigurasi untuk memberikan saran optimasi komprehensif.
Lihat aturan diagnosis dan saran perbaikan
Di halaman Image Build Diagnostics, klik Diagnostics. Lalu di panel Select Image Build Task, pilih ID tugas pembuatan image yang ingin Anda diagnosis menggunakan parameter berikut.
Namespace: Namespace tempat tugas pembuatan image berada.
Image Repositories: Repositori image tempat tugas pembuatan image berada.
Image Build Task ID: ID tugas pembuatan image.
Setelah memilih ID tugas pembuatan image, baca dengan cermat catatan penggunaan, pilih Saya mengerti dan setuju, lalu klik Initiate Diagnostics.
Setelah diagnosis selesai, Anda dapat melakukan operasi yang sesuai berdasarkan saran perbaikan. Tabel berikut mencantumkan aturan diagnostik umum, akar penyebab pengecualian, dan saran perbaikan.
Kelompok Aturan Diagnosis
Nama Aturan Diagnosis
Akar Penyebab Pengecualian
Saran Perbaikan
Pendeteksian Sintaks Dockerfile
Definisi Port Tidak Valid
Format port atau protokol dari instruksi
EXPOSEsalah.Saat menggunakan instruksi
EXPOSEuntuk mengekspos port, pastikan rentang port adalah 0 hingga 65535, dan protokolnya adalah TCP atau UDP.Pendeteksian Sintaks Instruksi Copy
Saat menyalin beberapa file, alamat tujuan bukan direktori.
Pastikan format jalur tujuan adalah direktori.
Tahap Pembuatan Tidak Ada
Nama tahap yang ditentukan dalam instruksi
COPYtidak ada.Pastikan nama tahap yang Anda tentukan dalam instruksi
COPYadalah nama tahap yang telah Anda definisikan sebelumnya.Nama Tahap Duplikat
Nama tahap duplikat digunakan.
Gunakan nama unik untuk setiap tahap.
Instruksi Pertama Tidak Valid
Instruksi pertama bukan instruksi
FROMatauARG.Pastikan instruksi pertama adalah instruksi
FROMatauARG.Item Kesalahan Kompilasi
Kesalahan prakompilasi Dockerfile.
Perbaiki kesalahan sintaks dalam Dockerfile, atau tunggu saran perbaikan yang disediakan oleh analisis akar penyebab.
Item Peringatan Kompilasi
Peringatan prakompilasi Dockerfile.
Perhatikan instruksi terkait dalam Dockerfile, yang mungkin berjalan dengan cara yang tidak terduga.
Pendeteksian Tag Image
Tidak Ada Tag Image Dasar yang Ditentukan
Tidak ada tag image spesifik yang ditentukan.
Ini dapat menyebabkan tag image yang tidak terduga digunakan selama proses pembuatan image dan memengaruhi hasil pembuatan. Kami sarankan Anda menentukan tag image spesifik.
Image Dasar Tidak Ada
Nama image dasar salah atau tidak ada.
Periksa nama image dasar atau pilih image dasar lain yang ada.
Pendeteksian Kesalahan Runtime
Kesalahan Eksekusi Perintah
Eksekusi baris perintah gagal.
Periksa apakah perintah yang ditentukan untuk dijalankan dalam Dockerfile benar, atau tunggu saran perbaikan yang disediakan oleh analisis akar penyebab.
Perintah Tidak Ada
Perintah yang akan dijalankan tidak ada.
Pastikan perintah yang ditentukan untuk dijalankan dalam Dockerfile ada di image dasar.
File Tidak Ada
Kesalahan penyalinan file.
Periksa apakah file atau direktori yang ditentukan dalam perintah
COPYdalam Dockerfile ada.Pendeteksian Instruksi Tidak Valid
Pendeteksian Perintah Tidak Valid
Instruksi yang tidak didukung seperti
KilldanShutdowndigunakan selama proses pembuatan.Menggunakan instruksi seperti
KilldanShutdownselama proses pembuatan dapat menyebabkan masalah keamanan dan stabilitas. Hapus instruksi ini.Pendeteksian Perintah sudo
Perintah
sudoyang digunakan selama proses pembuatan tidak valid.Hapus instruksi
sudodari proses pembuatan.Pendeteksian Kesalahan pada Tahap Pengunggahan
Konflik Tag
Tag image yang akan diunggah bertentangan dengan tag image yang sudah ada di repositori.
Konflik tag image. Nonaktifkan fitur tag image immutable dari repositori, atau pastikan image dengan tag yang sama tidak didorong berulang kali.
Pendeteksian Optimasi Ukuran Image
Item Optimasi Instruksi
apt getInstruksi
apt updatedanapt installdipisahkan dalam instruksi pembuatan.Pemisahan instruksi
apt updatedanapt installdalam instruksi berbeda dapat meningkatkan ukuran image dan mengurangi efisiensi pembuatan berulang.Item Optimasi Instruksi
apt getParameter
--no-install-recommendstidak ditambahkan ke instruksiapt-get install.Menambahkan parameter
--no-install-recommendske instruksiapt-get installmembantu mengurangi ukuran image.Item Optimasi Instruksi Instalasi Paket
Cache tidak dibersihkan setelah paket diinstal.
Pembersihan cache setelah paket diinstal membantu mengurangi ukuran image. Sebagai contoh, untuk membersihkan cache, Ubuntu menggunakan instruksi
apt-get clean, Alpine menambahkan instruksi--no-cache and rm -rf /var/cache/apk/*ke instruksiapk add, dan CentOS menggunakan instruksiyum clean.Pendeteksian Kompilasi Multi-Tahap
Kompilasi multi-tahap tidak digunakan untuk mengoptimalkan instruksi kompilasi.
Meletakkan instruksi kompilasi ke dalam tahap terpisah untuk kompilasi dan menyalin hasil kompilasi ke image bisnis dapat mengurangi ukuran image.
Paket Terkompresi Redundan Ada
Paket terkompresi yang digunakan selama proses pembuatan tidak dibersihkan.
Menggabungkan instruksi untuk mengunduh paket terkompresi, mengekstrak paket terkompresi, dan menghapus paket terkompresi dalam instruksi
RUNyang sama dapat mengurangi ukuran image.Pendeteksian Optimasi Instruksi Pembuatan
Pendeteksian Jalur Relatif
WORKDIRmenggunakan jalur relatif.Saat menggunakan jalur relatif untuk instruksi
WORKDIR, sistem mungkin beralih ke direktori kerja yang tidak terduga, yang menyebabkan pembuatan gagal. Verifikasi bahwa jalurWORKDIRbenar atau gunakan jalur absolut.Pendeteksian Pengguna Root
Pengguna Root digunakan selama proses pembuatan.
Beralih ke pengguna Root selama proses pembuatan dapat menyebabkan masalah keamanan saat kontainer berjalan. Hapus instruksi terkait.
Pendeteksian Optimasi Pergantian Jalur
Instruksi
cddigunakan selama proses pembuatan.Direktori kerja yang ditentukan dalam instruksi
cdselama proses pembuatan tidak berlaku dalam runtime kontainer. Kami sarankan Anda menggunakan instruksiWORKDIR.Pendeteksian Override
CMDdanENTRYPOINTBeberapa instruksi
CMDatauENTRYPOINTdigunakan selama proses pembuatan.Saat menggunakan beberapa instruksi
CMDatauENTRYPOINTselama proses pembuatan, hanya instruksi terakhir yang berlaku. Pastikan instruksi terakhir adalah instruksi yang Anda maksudkan untuk digunakan.