GitHub Codespaces:如何设置x86_64、AMD64、ARM64平台?
GitHub Codespaces: how to set x86_64, AMD64, ARM64 platform?
首先,问题是:有没有办法为 GitHub 代码空间选择平台(例如 x86_64、AMD64、ARM64)?
这是我目前的发现:
尝试 1(无效):
在 GitHub.com 中,您可以为 Codespace 选择“机器”,但唯一的选项是 RAM 和磁盘大小。
尝试 2(编辑:无效): devcontainer.json
创建 Codespace 时,您可以通过创建包含两个文件的顶级 .devcontainer
文件夹来指定选项:devcontainer.json
和 Dockerfile
在这里您可以自定义运行时、安装包等,但是文档没有说明确定体系结构...
...但是,devcontainer.json
的 VSCode 文档有一个 runArgs
选项,它“接受 Docker CLI 参数”...
和 --platform 上的 Docker CLI 文档说你应该能够通过 --platform linux/amd64
或 --platform linux/arm64
,但是...
当我尝试这样做时,Codespace 会挂起,永远不会完成构建。
尝试 3(进行中): 在 Dockerfile
中指定
这条路线似乎最有前途,但对我来说都是新的(容器化、代码空间、docker)。尝试 2 和 3 可能会相互结合。不过,此时新动人的作品太多了,需要外援
- GitHub Codespaces 支持吗?
- 你会在 Docker 文件或 devcontainer.json 中传递它吗?怎么样?
- 无论如何,您将如何验证这一点? [已解决:
dpkg --print-architecture
或 uname -a
]
- 对于 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/
编辑:2021 年 12 月
我收到了来自 GitHub 支持的回复:
The VM hosts for Codespaces are only x86_64 and we do not offer any ARM64 machines.
所以现在,设置平台什么都不做,或者失败。
但如果他们最终支持多个平台,您应该能够(在 Docker 文件中)
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 只是还不支持其他架构。
仍在调查中。
目前代码空间仅支持基于 x64 的主机 运行 Linux。其他硬件和主机类型暂未公布
首先,问题是:有没有办法为 GitHub 代码空间选择平台(例如 x86_64、AMD64、ARM64)?
这是我目前的发现:
尝试 1(无效):
在 GitHub.com 中,您可以为 Codespace 选择“机器”,但唯一的选项是 RAM 和磁盘大小。
尝试 2(编辑:无效): devcontainer.json
创建 Codespace 时,您可以通过创建包含两个文件的顶级 .devcontainer
文件夹来指定选项:devcontainer.json
和 Dockerfile
在这里您可以自定义运行时、安装包等,但是文档没有说明确定体系结构...
...但是,devcontainer.json
的 VSCode 文档有一个 runArgs
选项,它“接受 Docker CLI 参数”...
和 --platform 上的 Docker CLI 文档说你应该能够通过 --platform linux/amd64
或 --platform linux/arm64
,但是...
当我尝试这样做时,Codespace 会挂起,永远不会完成构建。
尝试 3(进行中): 在 Dockerfile
这条路线似乎最有前途,但对我来说都是新的(容器化、代码空间、docker)。尝试 2 和 3 可能会相互结合。不过,此时新动人的作品太多了,需要外援
- GitHub Codespaces 支持吗?
- 你会在 Docker 文件或 devcontainer.json 中传递它吗?怎么样?
- 无论如何,您将如何验证这一点? [已解决:
dpkg --print-architecture
或uname -a
] - 对于 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/
编辑:2021 年 12 月
我收到了来自 GitHub 支持的回复:
The VM hosts for Codespaces are only x86_64 and we do not offer any ARM64 machines.
所以现在,设置平台什么都不做,或者失败。
但如果他们最终支持多个平台,您应该能够(在 Docker 文件中)
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 只是还不支持其他架构。 仍在调查中。
目前代码空间仅支持基于 x64 的主机 运行 Linux。其他硬件和主机类型暂未公布