빌드 정책 테스트

빌드 정책 테스트 (Test build policies)

docker buildx policy test 명령은 OPA의 표준 테스트 프레임워크를 사용해 빌드 정책의 단위 테스트를 실행해요.

출처: 문서

본문

$ docker buildx policy test <path>

이 명령은 모의(mocked) 입력으로 정책 로직을 검증해요. 특정 소스에 대한 입력을 해석해 테스트 케이스를 작성하는 데 사용할 수 있는 옵션도 있어요.

기본 예시 (Basic example)

특정 이미지만 허용하는 정책:

package docker

default allow = false

allow if {
    input.image.repo == "alpine"
}

decision := {"allow": allow}

테스트:

package docker

test_alpine_allowed if {
    decision.allow with input as {"image": {"repo": "alpine"}}
}

test_ubuntu_denied if {
    not decision.allow with input as {"image": {"repo": "ubuntu"}}
}

테스트 실행:

$ docker buildx policy test .
test_alpine_allowed: PASS (allow=true)
test_ubuntu_denied: PASS (allow=false)

테스트가 성공적으로 실행되고 모든 단언이 충족됐다는 뜻이에요.

명령 옵션 (Command options)

특정 테스트만 실행:

$ docker buildx policy test --run alpine .
test_alpine_allowed: PASS (allow=true)

특정 Dockerfile 지정:

$ docker buildx policy test --filename app.Dockerfile .

주어진 Dockerfile에 대해 정책 파일들을 평가해요.

테스트 출력 (Test output)

통과한 테스트는 allow 상태와 거부 메시지를 보여줘요:

test_al...

각 테스트의 결과(수치, 허용 여부, 거부 사유)를 확인할 수 있어요.

더 알아보기 (Learn more)