명령어/Linux

[RHEL] buildah 도커파일 없이 이미지 빌드하기

jykim23 2026. 7. 18. 19:20
반응형

부제: 스크립트로 한 줄씩 쌓아 만드는 OCI 이미지

buildah --version                  # 버전 확인
buildah from registry.access.redhat.com/ubi9   # 베이스로 워킹 컨테이너 생성
buildah images                     # 로컬 이미지 목록
buildah containers                 # 빌드 중인 워킹 컨테이너 목록
buildah version 1.43.2 (image-spec 1.1.1, runtime-spec 1.2.1)

이미지를 만드는 전용 도구다. podman build도 내부에서 buildah를 쓴다. Containerfile(=Dockerfile)로 빌드하는 것은 물론, buildah frombuildah runbuildah commit처럼 셸 스크립트로 레이어를 한 단계씩 직접 쌓을 수 있다. 데몬이 없고 루트리스로 돌기 때문에 CI 러너 안에서 특권 없이 이미지를 굽기 좋다. docker build가 데몬에 의존하는 것과 달리, buildah는 그 자체가 독립 실행 파일이다.
이렇게도 쓴다
Containerfile로 표준 빌드를 한다.

buildah bud -t myapp:1.0 .

베이스 이미지 없이 완전 빈 이미지에서 시작한다. 극단적으로 작은 이미지를 만들 때.

buildah from scratch

워킹 컨테이너 안에서 명령을 실행해 레이어를 쌓는다.

ctr=$(buildah from ubi9); buildah run $ctr -- dnf -y install nginx

빌드한 이미지를 skopeo 없이 바로 레지스트리로 밀어 넣는다. (buildah + push)

buildah push myapp:1.0 docker://registry.example.com/myapp:1.0

이미지 설정을 나중에 수정한다. ENTRYPOINT나 포트 노출을 커밋 전에 손본다.

buildah config --port 8080 --entrypoint '["/usr/sbin/nginx"]' $ctr

멀티아키텍처 매니페스트를 만든다.

buildah manifest create myapp:multi
반응형