Files
portfolio-hub/.proofline/criteria/ac-0007.md
T

1.1 KiB

id, status
id status
ac-0007 active

Locked Python 3.11 non-root image와 deny-by-default context

Criterion

Repository-root image build는 Python 3.11을 사용하고 repository-owned uv.lock에 고정된 runtime dependency를 --locked --no-dev --no-editable 경계로 설치해야 한다. 최종 image는 고정 non-root UID/GID로 실행되고 .dockerignore와 명시적 COPY allowlist가 source control metadata, local environment, credential, 운영 설정 및 불필요한 파일을 build context/layer에서 제외해야 한다.

Verification

  • 성공 조건: hosted/local verification과 runtime image가 Python 3.11·동일 lock resolution을 사용하고 기본 user가 non-root이며 필요한 package/runtime 파일만 image에 존재한다.
  • 실패·경계 조건: lock drift, broad COPY ., root default user, .env·key·token·local DB·VCS/worktree metadata의 context 포함은 계약 실패다.
  • 검사 방법: uv lock --check, Dockerfile/.dockerignore contract tests, image inspect의 UID/GID 및 synthetic canary scan을 실행한다.