【问题标题】:GitHub Codespaces: how to set x86_64, AMD64, ARM64 platform?GitHub Codespaces:如何设置 x86_64、AMD64、ARM64 平台?
【发布时间】:2022-01-10 03:30:18
【问题描述】:

首先,问题是:有没有办法为 GitHub 代码空间选择平台(例如 x86_64、AMD64、ARM64)?

这是我目前发现的:

尝试 1(不工作):

在 GitHub.com 中,您可以为代码空间选择“机器”,但唯一的选项是 RAM 和磁盘大小。

尝试 2(编辑:不工作): devcontainer.json

创建 Codespace 时,您可以通过创建包含两个文件的顶级 .devcontainer 文件夹来指定选项:devcontainer.jsonDockerfile

在这里你可以自定义运行时、安装的包等等,但是文档没有说任何关于确定架构的内容...

...但是,devcontainer.json 的 VSCode 文档有一个 runArgs 选项,它“接受 Docker CLI 参数”...

和 --platform 上的 Docker CLI 文档说您应该能够通过 --platform linux/amd64--platform linux/arm64,但是...

当我尝试这个时,代码空间会挂起,永远不会完成构建。

尝试 3(进行中):Dockerfile中指定

这条路线似乎最有前途,但对我来说都是新的(容器化、代码空间、docker)。尝试 2 和 3 可能会相互配合。不过,目前有太多新的移动部件,我需要外部帮助。

  1. GitHub Codespaces 是否支持此功能?
  2. 你会在 Dockerfile 或 devcontainer.json 中传递它吗?怎么样?
  3. 无论如何,您将如何验证这一点? [已解决:dpkg --print-architectureuname -a]
  4. 对于 Windows,您可能需要许可证(我在 GitHub 上没有看到任何关于预许可代码空间的信息)——但这可能超出了问题的范围。

参考:
https://code.visualstudio.com/docs/remote/devcontainerjson-reference
https://docs.docker.com/engine/reference/commandline/run/
https://docs.docker.com/engine/reference/builder/
https://docs.docker.com/desktop/multi-arch/
https://docs.docker.com/buildx/working-with-buildx/

【问题讨论】:

  • 最后查了一下,Github上不直接支持arm平台,最多可以在qemu之类的解释器下运行。 github.community/t/…

标签: docker github vscode-devcontainer codespaces github-codespaces


【解决方案1】:

编辑:2021 年 12 月

我收到了来自 GitHub 支持的回复:

Codespaces 的 VM 主机只有 x86_64,我们不提供任何 ARM64 机器。

所以现在,设置平台什么都不做,或者失败。

但如果它们最终支持多个平台,您应该能够(在 Dockerfile 中)

RUN --platform=arm64|amd64|x86-64 [image-name],

这在非云版本的 Docker 中对我有用。


原答案:

我可能已经回答了我自己的问题

Dockerfile:

我有RUN alpine

改为

RUN --platform=linux/amd64 alpine

RUN --platform=linux/x86-64 alpine

在命令行检查

uname -a 打印架构。

仍在验证中,但看起来很有希望。 [编辑:不]

因此,尽管如此,我只能让 GitHub 代码空间运行 x86-64。不过,上面的语法似乎是正确的。

线索:

在构建代码空间时出现的日志中,我看到了target OS: x86

也许 GitHub 还不支持其他架构。 仍在调查中。

【讨论】:

    【解决方案2】:

    目前,Codespaces 仅支持运行 Linux 的基于 x64 的主机。其他硬件和主机类型尚未公布。

    【讨论】:

    • 你能链接到说明这一点的文档/文章吗?我没看到。
    • 目前还没有,因为 GitHub 记录了它支持的内容,而不是尚未支持的内容。目前 Codespaces 托管在 x64 linux docker 主机上。我是直接从 CodeSpaces 团队那里得到的。
    猜你喜欢
    • 2021-07-31
    • 1970-01-01
    • 2021-06-14
    • 2021-10-31
    • 1970-01-01
    • 2022-01-22
    • 2021-02-18
    • 2023-01-18
    • 2022-08-11
    相关资源
    最近更新 更多