SBOM_PIPELINE_IMAGE 를 docker.io/paasup 으로 옮긴다 (#30)
파이프라인 실행 이미지가 개인 네임스페이스(docker.io/wbsong111)를 가리키고 있었다. 카탈로그의
다른 자체 빌드 이미지는 2026-08-03 에 전부 docker.io/paasup 으로 이전됐는데 이것만 남아 있었다 —
"카탈로그가 배포하는 이미지가 아니라 CI 도구" 라 이전 대상에서 빠졌던 것이다.
before docker.io/wbsong111/sbom-pipeline:latest
after docker.io/paasup/sbom-pipeline:20260820
롤링 태그를 쓰지 않는다
---------------------
:latest 를 유지하지 않고 날짜 태그로 갔다. 이 Dockerfile 은 helm/trivy 를 **빌드 시점 최신으로
설치**하므로 같은 파일이 매번 다른 이미지를 낸다 — 태그가 "무엇으로 스캔했는지" 의 기록이어야
한다. Repo Variable 이 전체 ref 를 담으므로 고정 태그를 써도 워크플로 수정이 필요 없다.
이번 이미지가 담은 것: helm v3.21.4 · trivy 0.74.0 · python 3.13.5 · git 2.47.3
검증
----
push docker.io/paasup/sbom-pipeline:20260820 (linux/amd64)
변수 갱신 gh variable set SBOM_PIPELINE_IMAGE
CI 실제 동작 helm-catalog-sbom limit=3 실행 → 전체 success
(Preflight 도구 확인 · 인벤토리 추출 · SBOM · 스캔 · 게이트 판정 전부 통과)
문서의 낡은 참조 4곳(doc/sbom-pipeline.md)과 Dockerfile 헤더 절차, sbom.yml 주석 예시를 고쳤다.
Dockerfile 헤더에는 왜 :latest 를 쓰지 않는지도 적었다.
Closes #30
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,7 @@ jobs:
|
||||
timeout-minutes: 120
|
||||
container:
|
||||
# helm+trivy+python3+bash+git 보유 이미지. scripts/pipeline/Dockerfile 로 빌드해 푸시한 뒤
|
||||
# Repo Variable SBOM_PIPELINE_IMAGE 에 그 태그를 지정한다. (예: docker.io/paasup/sbom-pipeline:latest —
|
||||
# Repo Variable SBOM_PIPELINE_IMAGE 에 그 태그를 지정한다. (예: docker.io/paasup/sbom-pipeline:20260820 —
|
||||
# 재빌드/네임스페이스 전환은 별도 수동 작업, MEMORY.md 참고)
|
||||
image: ${{ vars.SBOM_PIPELINE_IMAGE }}
|
||||
env:
|
||||
|
||||
@@ -90,7 +90,7 @@ SBOM 생성 실패는 대부분 **사설/미인증 레지스트리이거나 대
|
||||
```bash
|
||||
docker run --rm -v "$PWD:/repo" -w /repo \
|
||||
-e TRIVY_CACHE_DIR=/repo/sbom-out/cache -e DOCKER_CONFIG=/repo/sbom-out/.docker \
|
||||
docker.io/wbsong111/sbom-pipeline:latest bash -c '
|
||||
docker.io/paasup/sbom-pipeline:20260820 bash -c '
|
||||
bash scripts/pipeline/extract-helm-images.sh manifests/helm sbom-out
|
||||
bash scripts/pipeline/generate-sbom.sh sbom-out/images_final.tsv sbom-out # 인증: DOCKER_CONFIG/TRIVY_USERNAME
|
||||
bash scripts/pipeline/scan-sbom.sh sbom-out
|
||||
@@ -105,7 +105,7 @@ docker run --rm -v "$PWD:/repo" -w /repo \
|
||||
| 베이스 | `debian:stable-slim` (**glibc**) |
|
||||
| 포함 도구 | `helm`(v3) · `trivy` · `python3` · `bash` · `git` |
|
||||
| 아키텍처 | **linux/amd64** (GitHub 러너와 일치) |
|
||||
| 현재 이미지 | `docker.io/wbsong111/sbom-pipeline:latest` (public) — `paasup` 네임스페이스 이전 미완료(`MEMORY.md`) |
|
||||
| 현재 이미지 | `docker.io/paasup/sbom-pipeline:20260820` (public) |
|
||||
|
||||
> **glibc(debian) 필수**: GitHub Actions 의 `container:` 안에서 `actions/checkout`·`upload-artifact`
|
||||
> (node 기반)가 동작하려면 glibc 이거나 node 가 있어야 한다. `aquasec/trivy` 같은 **alpine(musl)
|
||||
@@ -113,7 +113,7 @@ docker run --rm -v "$PWD:/repo" -w /repo \
|
||||
|
||||
```bash
|
||||
docker buildx build --platform linux/amd64 \
|
||||
-t docker.io/paasup/sbom-pipeline:latest \
|
||||
-t docker.io/paasup/sbom-pipeline:$(date -u +%Y%m%d) \
|
||||
-f scripts/pipeline/Dockerfile --push scripts/pipeline
|
||||
```
|
||||
|
||||
@@ -220,7 +220,7 @@ Repo Secret `CVE_API_KEY`).
|
||||
|
||||
| 종류 | 이름 | 용도 |
|
||||
|------|------|------|
|
||||
| **Variable** | `SBOM_PIPELINE_IMAGE` | 실행 이미지 태그 (예: `docker.io/wbsong111/sbom-pipeline:latest`) |
|
||||
| **Variable** | `SBOM_PIPELINE_IMAGE` | 실행 이미지 태그 (예: `docker.io/paasup/sbom-pipeline:20260820`) |
|
||||
| Secret | `DOCKERHUB_USER` / `DOCKERHUB_TOKEN` | **docker.io + docker.getcollate.io rate limit 회피**. getcollate(openmetadata)는 Docker Hub 프록시라 익명 pull 시 rate limit(TOOMANYREQUESTS)에 걸림 → Docker Hub 자격증명으로 인증. `build-image.yml` 의 push 에도 같은 시크릿을 쓴다 |
|
||||
| Secret | `NGC_API_KEY` | **nvcr.io 인증**(NVIDIA nemo/nim — 없으면 pull 불가) |
|
||||
| Secret | `CVE_API_KEY` | `cve-edge-post.yml` 의 외부 엔드포인트 인증 |
|
||||
|
||||
@@ -12,8 +12,12 @@
|
||||
#
|
||||
# 빌드 & 푸시 (amd64 필수 — GitHub 러너가 amd64):
|
||||
# docker buildx build --platform linux/amd64 \
|
||||
# -t docker.io/<org>/sbom-pipeline:latest -f scripts/pipeline/Dockerfile --push scripts/pipeline
|
||||
# # 이후: gh variable set SBOM_PIPELINE_IMAGE --body docker.io/<org>/sbom-pipeline:latest
|
||||
# -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user