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": []
},