Tags: Java

Błąd Docker (Apple Silicon/M1 Preview) MySQL 'no matching manifest for linux/arm64/v8 in the manifest list entries'

Błąd "no matching manifest for linux/arm64/v8 in the manifest list entries" podczas próby uruchomienia obrazu Docker na systemie z procesorem Apple Silicon (takim jak M1) oznacza, że Docker próbował pobrać wersję obrazu przeznaczoną dla innej architektury procesora, takiej jak x86_64, która nie jest obsługiwana natywnie przez procesory ARM Apple Silicon.

Aby rozwiązać ten problem, wykonaj poniższe kroki:

Sprawdź dostępność obrazu dla ARM64

Należy sprawdzić, czy na Docker Hub istnieje wersja obrazu MySQL specjalnie dla architektury arm64. Często producenci oprogramowania dostarczają różne tagi dla różnych architektur.

Użyj specyficznego tagu dla ARM

Jeśli istnieje tag dla arm64, upewnij się, że używasz go podczas pobierania obrazu. Przykładowo, zamiast używać `mysql:latest`, możesz potrzebować użyć `mysql:8.0.23-arm64v8` (tagi będą się różnić w zależności od dostępnych wersji).

Ustawienie platformy w Docker CLI

Jeśli używasz linii poleceń Docker, możesz spróbować wymusić użycie konkretnej platformy za pomocą opcji `--platform`. Na przykład:

docker pull --platform linux/arm64/v8 mysql:latest

Użyj Buildx dla wieloplatformowego budowania obrazów

Jeśli tworzysz własne obrazy Docker i chcesz zapewnić ich działanie na różnych architekturach, możesz użyć Docker Buildx, który jest rozszerzeniem Docker CLI obsługującym budowanie wieloplatformowych obrazów.

Emulacja z QEMU

Jeśli Docker Desktop na Apple Silicon nie może znaleźć pasującego obrazu, może automatycznie próbować użyć emulacji QEMU dla obrazów x86_64. Upewnij się, że opcja emulacji jest włączona w ustawieniach Docker Desktop.

Aktualizacja Docker Desktop

Upewnij się, że używasz najnowszej wersji Docker Desktop dla Apple Silicon, która ma najlepsze wsparcie dla architektury ARM.

Alternatywne obrazy

Jeśli oficjalny obraz MySQL nie jest dostępny dla arm64, możesz poszukać alternatywnych obrazów utrzymywanych przez społeczność, które są dostosowane do pracy na architekturze ARM.

Kontakt z dostawcą obrazu

Jeśli obraz, którego próbujesz użyć, pochodzi od zewnętrznego dostawcy (nie od oficjalnego repozytorium MySQL), skontaktuj się z nim, aby dowiedzieć się, czy mają wersję kompatybilną z ARM64.

Sprawdzenie manifestów

Używając narzędzi takich jak `docker manifest inspect`, możesz sprawdzić, jakie platformy są obsługiwane przez dany obraz.

Pamiętaj, że nie wszystkie obrazy Docker są dostępne dla architektury ARM, zwłaszcza jeśli są one starsze lub mniej popularne. W takim przypadku, jeśli żadne z powyższych rozwiązań nie działa, możesz rozważyć postawienie MySQL na maszynie wirtualnej x86_64 lub użycie alternatywnego systemu zarządzania bazą danych, który jest kompatybilny z ARM.