Appsody :: Запуск простого экспресс-приложения node js дает ошибку (MacBook Pro - M1-2020)

Я пытаюсь запустить приложение node js с помощью appsody. Я установил appsody с помощью brew и сделал проект, запустив appsody init nodejs-expressкоманда.

Теперь, когда я бегу appsody run command. Я получаю следующую ошибку. Я вытащил образ ubuntu из докер-хаба ( docker pull ubuntu) и снова запустите эту команду, но безуспешно.

Шаги, которые я сделал

      brew install appsody/appsody/appsody
appsody list
mkdir my-project
cd my-project
appsody init nodejs-express
appsody run

Получение ошибки ниже

      no matching manifest for linux/arm64/v8 in the manifest list entries

Что я делаю не так ?

2 ответа

Это означает, что образ appsody/init-controller недоступен для вашей нативной платформы (которая linux/arm64/v8). Если вы нажмете ссылку (ранее в этом предложении) и посмотрите на вкладку «Теги» в Docker Hub, вы увидите, что это изображение публикуется только для linux/amd64(Intel) и две другие платформы, но не для ARM64.

Чтобы это работало, вам нужно указать другую платформу. Вы можете сделать это, установив эту переменную среды перед запуском приложения:

      export DOCKER_DEFAULT_PLATFORM=linux/amd64

ПРИМЕЧАНИЕ. Docker может выполнить эту эмуляцию (запустив amd64 на ARM) с помощью qemu, но иногда она работает нестабильно. Вы можете обнаружить сбой контейнеров. Но в других случаях это работает нормально; YMMV.

Другим вариантом может быть пересборка всех необходимых образов как ARM64. Для этого вам нужно определить все изображения, которые имеют значение, и попытаться найти исходный материал для их восстановления. Иногда они доступны (например, на GitHub), а иногда не публикуются. Так что это может быть не ваш вариант.

Любой, кто запускает docker от appsody и сталкивается с вышеуказанной проблемой, приведенной ниже, работал для меня.

Суть в том, чтобы объединить вашу команду с командой @Dan Lowe.

           {
        "label": "Appsody: debug",
        "type": "shell",
        "command": "export DOCKER_DEFAULT_PLATFORM=linux/amd64;appsody debug --network my-microservice_default --docker-options '--env KAFKA_BOOTSTRAP_SERVERS=kafka:xxxx' -p xxxx:xxxx -p xxxx:xxxx -p xxxx:xxxx",
        "group": "build",
        "problemMatcher": []
    },
Другие вопросы по тегам