Docker Desktop pour M1 : résoudre l'erreur "no matching manifest for linux/arm64/v8 in the manifest list entries"

La sortie des nouveaux processeurs Apple a entrainé de gros changements pour les applications et logiciels fonctionnant avec Mac. Le nouveau processeur Apple M1 utilise une architecture différente des précédents processeurs, fabriqués par Intel. Il est donc nécessaire que les applications soient modifiées pour prendre en charge le processeur M1. C'est le cas de Docker, le système de création et gestion de containers.

Docker a sorti une préversion à destination des processeurs Apple Silicon. Vous pouvez déjà l'utiliser si vous le souhaitez. Elle fonctionne bien mais vous pouvez quand même obtenir des messages d'erreur. Le message "no matching manifest for linux/arm64/v8 in the manifest list entries" peut notamment s'afficher lorsque vous utilisez "docker-compose" pour créer un container à partir d'un fichier YAML. Ce message indique qu'une des librairies que vous souhaitez utiliser ne peut pas être installée car elle n'est pas prise en charge pour les processeurs Apple. C'est notamment le cas de MySQL 5.7. Il existe quand même des solutions pour résoudre ce problème.

Une première solution consiste à contourner le problème en précisant comme plateforme "linux/x86_64" dans le fichier YAML. Cela va permettre d'installer MySQL car les processeurs Apple peuvent lire ces instructions.

services:
  db:
    platform: linux/x86_64
    image: mysql:5.7

Une autre solution consiste à utiliser une alternative à MySQL. Le système de gestion de base de données MariaDB est une bonne alternative. Il s'agit d'un Fork de MySQL, apparu récemment suite au rachat de Sun par la société Oracle. La version 10.5 de MariaDB prend en charge le processeur M1.

services:
  db:
    image: mariadb:10.5.8

iOS / Mac