docker 명령어가 아닌 buildah를 이용하여 multiarch build 후 docker hub에 push하는 방법이다.
우선, 원활한 multiarch build를 위해 아래 글을 먼저 참고한다.
2024.04.28 - [Develop/기타 작업] - exec container process `/bin/sh`: Exec format error
1. manifest 생성
buildah manifest create multi-test
2. buildah 를 이용한 이미지 빌드
amd64 빌드
buildah build --arch=amd64 -f Dockerfile -t docker.io/name/multi-test:1.0 --manifest multi-test .
arm64 빌드
buildah build --arch=arm64 -f Dockerfile -t docker.io/name/multi-test:1.0 --manifest multi-test .
3. 잘 되었는지 manifest 조회
buildah manifest inspect multi-test
# result
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 498,
"digest": "sha256:ba89775d01a87554befd5cb4067cee02a81e28fbd575e458c7da8de269251475",
"platform": {
"architecture": "arm64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 498,
"digest": "sha256:1ac1ba96e89b9b2184e1b21a9bdbe22ba8c5d9e3433e692482ab53e9a816383b",
"platform": {
"architecture": "amd64",
"os": "linux"
}
}
]
}
4. docker hub login
docker hub 의 ID와 PW를 이용하여 로그인
buildah login -u ID -p PW docker.io
5. docker hub 에서 생성한 repository에 push
buildah manifest push --all multi-test "docker://docker.io/name/multi-test:1.0"
6. docker hub에 접속하여 확인
'Develop > 기타 작업' 카테고리의 다른 글
ctr import 응답 없음 및 이미지 import 실패 (0) | 2024.10.29 |
---|---|
exec container process `/bin/sh`: Exec format error (0) | 2024.04.28 |
Buildah (0) | 2024.04.11 |
Docker architecture, save, load, tag 및 ctr tag, export, import, push (0) | 2024.04.10 |
sed 수정, 특정 글 위/아래 추가, 특정 글 아래 수정, 띄어쓰기 입력 (0) | 2024.04.08 |