Appsody :: 运行 简单的 node js express 应用程序出错 (MacBook Pro - M1 -2020)

Appsody :: Run simple node js express application gives error ( MacBook Pro - M1 -2020 )

我正在尝试 运行 使用 appsody 节点 js 应用程序。我已经使用 brew 安装了 appsody 并通过 运行ning appsody init nodejs-express 命令制作了项目。

现在当我运行appsody run command。我收到以下错误。我已经从 docker 集线器 ( docker pull ubuntu ) 和 agin 运行 中提取了 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

我做错了什么?

这意味着 appsody/init-controller 图像不适用于您的本机平台(即 linux/arm64/v8)。如果您单击 link(在这句话的前面)并查看 Docker 中心上的“标签”选项卡,您会看到此图片仅针对 linux/amd64(英特尔)发布,并且其他两个平台,但不适用于 ARM64。

要进行此操作,您需要指定另一个平台。您可以通过在 运行 应用程序之前设置此环境变量来做到这一点:

export DOCKER_DEFAULT_PLATFORM=linux/amd64

注意: Docker 可以使用 qemu 进行此仿真(运行 ARM 上的 amd64),但它有时不稳定。您可能会发现容器崩溃。但其他时候它工作正常; YMMV.

另一种选择是将所有需要的映像重建为 ARM64。为此,您需要确定所有重要的图像,并尝试找到来源 material 来重建它们。有时这些是可用的(例如在 GitHub 上)——其他时候它们不被发布。所以这可能不适合您。

appsody 运行 docker 遇到上述问题的任何人都对我有用。

要点是将您的命令与@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": []
    },