很多 docker 镜像,例如 node:18 默认是支持多 cpu 架构的,例如下面的写法可以在 arm64 和 amd64 的设备上运行:
FROM node:18
问题来了,我如何将 node:18 的所有变体移动到一个新的仓库,之后能这么用:
FROM private-registry/node:18
上面的写法要能同时在多种 cpu 架构的设备上运行,就和官方镜像完全一样。
# 搬运 arm64 架构变体
docker pull node:18 --platform linux/arm64
docker tag node:18 new-registry/node:18-arm64
docker push new-registry/node:18-arm64
# 搬运 amd64 架构变体
```shell
docker pull node:18 --platform linux/amd64
docker tag node:18 new-registry/node:18-amd64
docker push new-registry/node:18-amd64
用的时候 dockerfile 里得手动区分不同的 cpu 架构:
amd64
FROM new-registry/node:18-amd64
arm64
FROM new-registry/node:18-arm64
目前已用 skopeo 成功解决,暂时没有发现问题
1
messense 2022-11-18 10:49:13 +08:00
|
2
FakNoCNName 2022-11-18 10:51:28 +08:00 1
建一个 dockerfile:
``` FROM private-registry/node:18 ``` 用 buildx 重制推送: ``` docker buildx build -f Dockerfile -t YourRegistry:Port/Repo:Tag --platform=PlatForms . --push ``` |
3
mritd 2022-11-18 12:57:26 +08:00 via iPhone 1
nerdctl 加一个 —all-platforms
|
4
isbase OP |