반응형

 

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에 접속하여 확인

반응형

+ Recent posts