Traffine I/O

Bahasa Indonesia

2022-12-18

no match for platform in manifest

Kesalahan "no match for platform in manifest"

Chip M1 dan M2 dari Apple, yang berbasis arsitektur ARM, telah terbukti menjadi perubahan besar dalam dunia komputasi. Namun, arsitektur baru ini juga membawa masalah kompatibilitas tertentu, terutama saat menggunakan perangkat lunak yang awalnya dirancang untuk platform x86-64. Salah satu masalah seperti itu muncul ketika Anda mencoba membangun gambar Docker di Mac M1/M2.

Jika Anda menjalankan Dockerfile berikut dengan perintah docker build .:

Dockerfile
FROM <your image>:latest

Anda kemungkinan akan menghadapi pesan kesalahan berikut:

failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest sha256:8531053692ea6f2876d103be6756e2fbdba8b2332303d88ac03da26455332566: not found

Kesalahan ini pada dasarnya mengindikasikan bahwa Docker tidak dapat menemukan platform yang kompatibel untuk hash manifest SHA-256 yang diberikan. Ini terjadi terutama karena ketidakcocokan antara platform yang Anda gunakan dan platform yang digunakan untuk membangun gambar Docker.

Solusi

Docker menyediakan opsi --platform yang memungkinkan Anda untuk menentukan platform target untuk gambar Anda. Dengan menggunakan opsi ini, Anda memberi instruksi kepada Docker untuk menarik atau membangun gambar yang kompatibel dengan arsitektur yang ditentukan. Misalnya, jika Anda menghadapi masalah ini di Mac M1/M2 dan Anda perlu membangun gambar untuk platform linux/amd64, Anda dapat menggunakan perintah berikut:

bash
$ docker build --platform linux/amd64 .

Perintah ini memaksa Docker untuk mencari manifest gambar yang kompatibel dengan platform linux/amd64, sehingga efektif mengatasi masalah "no match for platform in manifest".

Jika Anda menggunakan Docker Compose untuk mengelola aplikasi multi-container, Anda dapat menentukan platform di file docker-compose.yml. Berikut adalah caranya:

docker-compose.yml
services:
  hoge:
    platform: linux/amd64

Konfigurasi ini memberitahu Docker Compose bahwa layanan hoge harus dijalankan menggunakan gambar yang dibangun untuk platform linux/amd64.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!