Skip to content

English {#english}

Verify iamfork/prego-repo image: (1) Local check — pull image, run ls in bench apps dir for frappe/erpnext/hrms/prego_saas_app; (2) Optional Trivy scan. CI runs “Verify image apps” after build-and-push. Ref: prego-docker-image-verify-and-vulnerability-plan §1.2. Full details: see Korean section below.


한국어 {#korean}

prego-docker 이미지 검증 Runbook

대상 이미지: iamfork/prego-repo (prego-docker 빌드, tag 기반 pinning).

이 runbook은 기획서 prego-docker-image-verify-and-vulnerability-plan §1.2를 실행 가능한 절차로 정리한 것이다. CI: build-and-push 성공 후 자동으로 “Verify image apps” 단계에서 4개 앱 존재 여부를 검사한다 (prego-docker .github/workflows/build.yml).


1. 앱 포함 여부 검증 (로컬)

이미지에 Frappe·ERPNext·HRMS·prego_saas_app 네 앱이 모두 들어 있는지 확인한다.

단계명령 / 확인 내용
1docker pull iamfork/prego-repo:latest (또는 검증할 태그)
2docker run --rm iamfork/prego-repo:latest ls -la /home/frappe/frappe-bench/apps/frappe, erpnext, hrms, prego_saas_app 디렉터리 존재 확인
3(선택) docker run --rm iamfork/prego-repo:latest cat /home/frappe/frappe-bench/apps/prego_saas_app/setup.py → prego_saas_app 패키지 내용 확인
4(선택) docker run --rm iamfork/prego-repo:latest /home/frappe/frappe-bench/env/bin/pip list | grep -i frappe 로 설치된 앱 패키지 확인

정상 기준: 위 4개 디렉터리가 존재하고, 각 앱 소스(최소 디렉터리·setup.py)가 비어 있지 않음.


2. 취약점 스캔 (로컬·선택)

  • Trivy: trivy image --format table iamfork/prego-repo:latest (CRITICAL/HIGH 위주 확인).
  • 정책: Critical 0. High는 정책에 따라 수용 또는 주기 점검. CI는 prego-docker .github/workflows/trivy-scan.yml 에서 주기·수동 실행.

3. 빌드 후 검증

새 이미지 푸시 후(또는 로컬 빌드 후) 권장 순서:

  1. 앱 포함: 위 §1 실행 → frappe, erpnext, hrms, prego_saas_app 4개 확인.
  2. Trivy: prego-docker 레포 → Actions → trivy-scan → “Run workflow” (태그 지정 시 해당 태그 스캔). 또는 로컬에서 trivy image --format table iamfork/prego-repo:<tag>.

4. 베이스 이미지 digest 고정 (선택)

재현성·보안을 위해 python:3.11-slim-bookworm 를 digest로 고정하려면:

  • digest 확인: docker manifest inspect python:3.11-slim-bookworm 출력에서 manifest digest 사용. 또는 Docker Hub → library/python → Tags → 3.11-slim-bookworm → Digest 복사.
  • Dockerfile 반영: prego-docker Dockerfile 1행 근처에서 FROM python:3.11-slim-bookworm@sha256:<digest> 로 변경. 주기적으로 최신 digest로 갱신.

5. 관련 문서

Help