Допустим, у меня есть приложение foo
, созданное для множества различных арок (например, foo-arm64
, foo-amd64
, et c). Я хотел бы сделать очень маленькие Docker изображения, например, так:
FROM scratch
ARG ARCH
ADD foo-$ARCH /bin/foo
ENTRYPOINT [ "/bin/foo" ]
Однако, когда я создаю изображение:
docker build -t foo:arm64 --platform linux/arm64 --build-arg ARCH=arm64 .
архитектура не верна:
docker inspect foo:arm64 | grep Arch
"Architecture": "amd64", # should be arm64??
Кажется, что арка изображения всегда исходит от хоста. Как я могу создать образ Docker с правильной архитектурой, если он отличается от хоста? Как официальные Docker изображения делают это?