첨부 파일이 있는 이미지 빌드
이 단계에서는 Docker 이미지를 빌드하고 메타데이터를 첨부하는 방법을 배웁니다. 첨부 파일은 빌드 출처, 소프트웨어 자재 명세서 (SBOM), 또는 기타 관련 데이터와 같은 추가 정보를 이미지에 포함하는 방법입니다.
먼저, 간단한 Dockerfile 을 만들어 보겠습니다. 아직 해당 디렉토리에 있지 않다면 ~/project 디렉토리로 이동합니다.
cd ~/project
이제 nano 편집기를 사용하여 Dockerfile이라는 파일을 만듭니다.
nano Dockerfile
다음 내용을 Dockerfile에 추가합니다.
FROM alpine:latest
CMD ["echo", "Hello, Docker Attachments!"]
이 Dockerfile 은 매우 간단합니다. alpine:latest 이미지를 기본 이미지로 사용하고 컨테이너가 시작될 때 메시지를 출력하는 명령을 정의합니다.
파일을 저장하고 nano를 종료합니다 ( Ctrl + X, 다음 Y, 다음 Enter ).
다음으로, 이미지에 첨부할 파일을 만들어야 합니다. attachment.txt라는 간단한 텍스트 파일을 만들어 보겠습니다.
nano attachment.txt
attachment.txt에 내용을 추가합니다. 예를 들어 다음과 같습니다.
This is an example attachment for the Docker image.
It can contain any relevant metadata.
파일을 저장하고 nano를 종료합니다.
이제 Docker 이미지를 빌드하고 attachment.txt 파일을 첨부합니다. --attest 플래그와 함께 docker build 명령을 사용합니다. --attest 플래그를 사용하면 이미지 빌드에 포함할 첨부 파일을 지정할 수 있습니다. 형식은 type=type,dest=destination,src=source입니다.
이 경우, 유형으로 type=sbom (Software Bill of Materials) 을 사용하고, 첨부 파일 내의 대상 경로로 dest=/sbom/attachment.txt를 사용하며, 로컬 파일 시스템의 소스 파일로 src=attachment.txt를 사용합니다. 또한 이미지를 my-attached-image:latest로 태그합니다.
빌드하기 전에 필요한 buildx 플러그인이 설치되어 있는지 확인하십시오. 그렇지 않은 경우 설치해야 할 수 있습니다. 그러나 기본 첨부 파일의 경우 내장 빌더로 충분합니다.
이미지를 빌드해 보겠습니다.
docker build -t my-attached-image:latest --attest type=sbom,dest=/sbom/attachment.txt,src=attachment.txt .
명령어 끝의 .은 빌드 컨텍스트, 즉 현재 디렉토리 (~/project) 를 지정합니다.
이미지가 빌드되고 첨부 파일이 처리되고 있음을 나타내는 출력을 볼 수 있습니다.
빌드가 완료되면 로컬 이미지를 나열하여 이미지가 생성되었는지 확인할 수 있습니다.
docker images
목록에 my-attached-image가 표시됩니다.