# =============================================================================
# SBOM 파이프라인 실행 이미지
#
#   .github/workflows/sbom.yml 의 `container:` (Repo Variable SBOM_PIPELINE_IMAGE)
#   로 사용되는 이미지. scripts/pipeline/*.sh 를 컨테이너 내부에서 직접 실행한다.
#   상세: doc/sbom-pipeline.md
#
# 도구: helm(v3) + trivy + python3 + bash + git
# 베이스: debian(glibc) — GitHub Actions container 안에서 node 기반 액션
#         (actions/checkout, upload-artifact)이 동작하려면 glibc 필요.
#         (alpine/musl 은 node 실행 실패 가능 → debian 사용)
#
# 빌드 & 푸시 (amd64 필수 — GitHub 러너가 amd64):
#   docker buildx build --platform linux/amd64 \
#     -t docker.io/paasup/sbom-pipeline:$(date -u +%Y%m%d) -f scripts/pipeline/Dockerfile --push scripts/pipeline
#   # 이후: gh variable set SBOM_PIPELINE_IMAGE --body docker.io/paasup/sbom-pipeline:<태그>
#
#   롤링 태그(:latest)를 쓰지 않는다 — helm/trivy 를 빌드 시점 최신으로 설치하므로 같은
#   Dockerfile 이 매번 다른 이미지를 낸다. 날짜 태그가 "무엇으로 스캔했는지" 의 기록이다.
#   변수가 전체 ref 를 담으므로 고정 태그를 써도 워크플로 수정이 필요 없다.
# =============================================================================
FROM debian:stable-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
      curl ca-certificates git python3 bash \
 && rm -rf /var/lib/apt/lists/*

# helm v3
RUN curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# trivy (최신)
RUN curl -fsSL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh \
      | sh -s -- -b /usr/local/bin

# 설치 확인 (빌드 시 도구 누락 조기 감지)
RUN helm version --short && trivy --version | head -1 && python3 --version && git --version

ENTRYPOINT []
CMD ["bash"]
