빌드 정책 테스트
빌드 정책 테스트 (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...
각 테스트의 결과(수치, 허용 여부, 거부 사유)를 확인할 수 있어요.