Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
minimal — 최소 CVE 강화 컨테이너 이미지 컬렉션 | Kitploit
도구/GitHubGitHub/rtvkiz/minimal
Vulnerability ScannersContainer SecurityConfiguration AuditingCloud SecurityDevSecOpsSupply Chain Security
GitHubrtvkiz/minimal

minimal

최소 CVE 강화 컨테이너 이미지 컬렉션

저장소 보기
513218시간 5분 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

미니멀 — 강화된 컨테이너 이미지

작고 강화된 컨테이너 이미지, 무료이며 MIT 라이선스.
소스에서 Chainguard의 apko와 Wolfi 패키지로 빌드, 6시간마다 재빌드.
모든 이미지는 cosign 서명, SPDX SBOM 증명을 제공하며, SLSA 레벨 3 빌드 출처를 포함합니다. 계정 없이 모두 확인할 수 있습니다.

🌐  minimalcontainers.com에서 전체 카탈로그 둘러보기  →

빌드 상태 이미지 카탈로그 라이선스: MIT SLSA 레벨 3 이미지: 57 아키텍처

이미지 카탈로그 · 이미지 확인 · 전체 57개 이미지 · HN 토론


30초 만에 가져오기 및 확인

이 이미지들의 핵심은 저를 신뢰할 필요가 없다는 것입니다. 하나를 가져와서 출처를 직접 확인하세요:```bash

Pull. It's public — no login, no rate limit.

docker pull ghcr.io/rtvkiz/minimal-python:latest

Verify the build provenance. This proves the image was produced by the

workflow file in this repo, at a specific commit, on a GitHub-hosted runner.

gh attestation verify oci://ghcr.io/rtvkiz/minimal-python:latest --owner rtvkiz

Pull the SPDX SBOM so you can see exactly what's inside.

cosign verify-attestation --type spdxjson
--certificate-identity-regexp='https://github.com/rtvkiz/minimal/'
--certificate-oidc-issuer='https://token.actions.githubusercontent.com'
ghcr.io/rtvkiz/minimal-python:latest
| jq -r '.payload | @base64d | fromjson | .predicate' > python-sbom.spdx.json

root@kitploit:~
더 많은 검증 방법(cosign 서명, SBOM, SLSA 입증)은 [`.github/SECURITY.md`](https://github.com/rtvkiz/minimal/blob/HEAD/.github/SECURITY.md)에 있습니다.

## `minimal`의 차이점

|  | minimal | Chainguard | Docker Hardened | Minimus / RapidFort |
|---|:---:|:---:|:---:|:---:|
| **라이선스** | MIT | 독점 | Apache-2.0 | 독점 |
| **비용** | $0 | ~$30k/이미지/년 | 무료 + 유료 지원 | 영업 상담 |
| **풀 인증** | 아니요 | 예 | 예 | 예 |
| **속도 제한** | 없음 | 예 | 예 | 예 |
| **빌드 레시피 공개** | 예, 모든 `melange.yaml` | 아니요 | 예, Dockerfiles | 아니요 |
| **Cosign 서명 + SBOM + SLSA L3** | 예 | 예 | 예 | 예 |
| **공급업체 SLA, FedRAMP/STIG** | 아니요 | 예 (유료) | 예 (유료) | 예 (유료) |

강화된 이미지를 비용 없이 혹은 가입 없이 사용하고 싶거나, 모든 빌드 레시피를 처음부터 끝까지 읽고 싶거나, 자신의 내부 카탈로그에 포크할 수 있는 작동하는 템플릿을 원한다면 `minimal`을 선택하세요.

공급업체 계약, FedRAMP 또는 STIG 인증 서류, 또는 첫날부터 수천 개 이상의 이미지가 필요하다면 이 프로젝트는 적합하지 않을 수 있습니다. 이것들은 이 프로젝트가 해결하려고 하지 않는 실제 요구사항입니다.

## 모든 이미지가 제공하는 것

- cosign 키리스 서명, 공개 Rekor 투명성 로그에서 검증 가능.
- in-toto 증명으로 첨부된 SPDX SBOM — 모든 패키지, 버전 및 라이선스.
- SLSA v1.0 빌드 출처 — 어떤 워크플로, 어떤 커밋, 어떤 러너가 이미지를 생성했는지에 대한 암호학적 증명.
- 매일 Grype 스캔 결과는 [공개 카탈로그](https://minimalcontainers.com)와 GitHub 보안 탭에서 확인 가능.
- 기본 `linux/amd64` 및 `linux/arm64` 빌드.
- 기본적으로 루트가 아닌 사용자(UID 65532)이며, 업스트림에서 달리 요구하지 않는 한 적용.
- 가능한 경우 셸 없음 — 대부분의 이미지는 `/bin/sh`를 포함하지 않습니다.
- 6시간 재구축 주기로 Wolfi CVE 패치가 며칠이 아닌 몇 시간 안에 적용됩니다.

## 사용 가능한 이미지 — 총 57개

| 카테고리 | 개수 | 하이라이트 |
|---|---|---|
| **언어 및 런타임** | 9 | python, node-slim, bun, go, java, ruby, php, dotnet, deno |
| **데이터베이스** | 5 | mysql, mariadb, postgres-slim, sqlite, opensearch |
| **캐시, 큐, 메시징** | 7 | redis-slim, valkey, memcached, kafka, rabbitmq, nats, mosquitto |
| **웹 서버 및 프록시** | 6 | nginx, httpd, caddy, haproxy, traefik, envoy |
| **관측성** | 14 | prometheus, alertmanager, victoria-metrics, thanos, mimir, jaeger, loki, tempo, otelcol, fluent-bit, telegraf, node-exporter, blackbox-exporter, pushgateway |
| **인프라** | 7 | coredns, etcd, openbao, keycloak, qdrant, registry, consul |
| **쿠버네티스, CI 및 IaC** | 4 | helm, kubectl, opentofu, trivy |
| **애플리케이션** | 5 | jenkins, gitea, minio, rails, mailpit |

모든 이미지 — 실시간 CVE 스캔, 모든 태그, SBOM 및 빌드 출처와 함께 — **[minimalcontainers.com](https://minimalcontainers.com)**에서 확인하거나 아래 전체 풀 명령 목록을 펼쳐보세요.

<details>
<summary><strong>전체 이미지 카탈로그 및 풀 명령</strong></summary>

<br>

| 이미지 | 풀 명령 | 셸 | 사용 사례 |
|-------|--------------|-------|----------|
| | | **언어** | |
| Python | `docker pull ghcr.io/rtvkiz/minimal-python:latest` | 아니요 | Python 애플리케이션, 마이크로서비스 |
| Node.js-slim | `docker pull ghcr.io/rtvkiz/minimal-node-slim:latest` | 아니요 | Node.js 애플리케이션, JavaScript |
| Bun | `docker pull ghcr.io/rtvkiz/minimal-bun:latest` | 아니요 | 빠른 JavaScript/TypeScript 런타임 |
| Go | `docker pull ghcr.io/rtvkiz/minimal-go:latest` | 아니요 | Go 개발, CGO 빌드 |
| .NET Runtime | `docker pull ghcr.io/rtvkiz/minimal-dotnet:latest` | 아니요 | 애플리케이션용 .NET 10 런타임 |
| Java | `docker pull ghcr.io/rtvkiz/minimal-java:latest` | 아니요 | Java 애플리케이션용 OpenJDK 26 JRE |
| Ruby | `docker pull ghcr.io/rtvkiz/minimal-ruby:latest` | 아니요 | Ruby 4.0 런타임 (소스에서 빌드) |
| PHP | `docker pull ghcr.io/rtvkiz/minimal-php:latest` | 아니요 | PHP 8.5 CLI (소스에서 빌드) |
| Rails | `docker pull ghcr.io/rtvkiz/minimal-rails:latest` | 아니요 | Ruby 4.0 + Rails 8.1 (소스에서 빌드) |
| Deno | `docker pull ghcr.io/rtvkiz/minimal-deno:latest` | 아니요 | 안전한 TypeScript/JavaScript 런타임 |
| | | **데이터베이스** | |
| MySQL | `docker pull ghcr.io/rtvkiz/minimal-mysql:latest` | 예 | MySQL LTS 8.4.x, 소스에서 빌드 |
| MariaDB | `docker pull ghcr.io/rtvkiz/minimal-mariadb:latest` | 예 | MariaDB LTS 11.4.x, 소스에서 빌드 |
| PostgreSQL-slim | `docker pull ghcr.io/rtvkiz/minimal-postgres-slim:latest` | 아니요 | 관계형 데이터베이스 |
| SQLite | `docker pull ghcr.io/rtvkiz/minimal-sqlite:latest` | 아니요 | 임베디드 SQL 데이터베이스 CLI |
| OpenSearch | `docker pull ghcr.io/rtvkiz/minimal-opensearch:latest` | 아니요* | OpenSearch 3.x — 검색 및 분석 |
| | | **캐시, 큐, 메시징** | |
| Redis-slim | `docker pull ghcr.io/rtvkiz/minimal-redis-slim:latest` | 아니요 | 인메모리 데이터 저장소 |
| Memcached | `docker pull ghcr.io/rtvkiz/minimal-memcached:latest` | 아니요 | 인메모리 캐싱 (소스에서 빌드) |
| Valkey | `docker pull ghcr.io/rtvkiz/minimal-valkey:latest` | 아니요 | BSD 라이선스 Redis 포크 (LF) |
| Kafka | `docker pull ghcr.io/rtvkiz/minimal-kafka:latest` | 예 | Apache Kafka 4.x, KRaft 모드 |
| RabbitMQ | `docker pull ghcr.io/rtvkiz/minimal-rabbitmq:latest` | 예 | RabbitMQ 4.x AMQP 브로커 |
| NATS | `docker pull ghcr.io/rtvkiz/minimal-nats:latest` | 아니요 | JetStream이 포함된 NATS 서버 |
| Mosquitto | `docker pull ghcr.io/rtvkiz/minimal-mosquitto:latest` | 아니요 | Eclipse Mosquitto MQTT 브로커 (EPL-2.0/EDL-1.0) |
| | | **웹 서버 및 프록시** | |
| Nginx | `docker pull ghcr.io/rtvkiz/minimal-nginx:latest` | 아니요 | 리버스 프록시, 정적 파일 |
| HTTPD | `docker pull ghcr.io/rtvkiz/minimal-httpd:latest` | 가능* | Apache 웹 서버 |
| Caddy | `docker pull ghcr.io/rtvkiz/minimal-caddy:latest` | 아니요 | 자동 HTTPS 웹 서버 |
| HAProxy | `docker pull ghcr.io/rtvkiz/minimal-haproxy:latest` | 아니요 | TCP/HTTP 로드 밸런서 |
| Traefik | `docker pull ghcr.io/rtvkiz/minimal-traefik:latest` | 아니요 | 클라우드 네이티브 리버스 프록시 |
| Envoy | `docker pull ghcr.io/rtvkiz/minimal-envoy:latest` | 아니요 | 서비스 프록시 및 로드 밸런서 |
| | | **관측성** | |
| Prometheus | `docker pull ghcr.io/rtvkiz/minimal-prometheus:latest` | 아니요 | 메트릭 수집 및 알림 |
| VictoriaMetrics | `docker pull ghcr.io/rtvkiz/minimal-victoria-metrics:latest` | 아니요 | 고성능 메트릭 저장소 |
| Jaeger | `docker pull ghcr.io/rtvkiz/minimal-jaeger:latest` | 아니요 | 분산 추적 (v2) |
| Loki | `docker pull ghcr.io/rtvkiz/minimal-loki:latest` | 아니요 | 로그 수집 (Grafana Labs) |
| Tempo | `docker pull ghcr.io/rtvkiz/minimal-tempo:latest` | 아니요 | 분산 추적 백엔드 (Grafana Labs, AGPL) |
| OTel Collector | `docker pull ghcr.io/rtvkiz/minimal-otelcol:latest` | 아니요 | OpenTelemetry Collector 코어 |
| Fluent Bit | `docker pull ghcr.io/rtvkiz/minimal-fluent-bit:latest` | 아니요 | 경량 로그 프로세서 |
| Node Exporter | `docker pull ghcr.io/rtvkiz/minimal-node-exporter:latest` | 아니요 | Prometheus 호스트 하드웨어 및 OS 메트릭 |
| Blackbox Exporter | `docker pull ghcr.io/rtvkiz/minimal-blackbox-exporter:latest` | 아니요 | Prometheus 엔드포인트 프로빙 (HTTP/DNS/TCP/ICMP) |
| Pushgateway | `docker pull ghcr.io/rtvkiz/minimal-pushgateway:latest` | 아니요 | 배치 작업을 위한 Prometheus 메트릭 푸시 |
| | | **인프라** | |
| CoreDNS | `docker pull ghcr.io/rtvkiz/minimal-coredns:latest` | 아니요 | 쿠버네티스 기본 DNS |
| etcd | `docker pull ghcr.io/rtvkiz/minimal-etcd:latest` | 아니요 | 분산 키-값 저장소 |
| OpenBao | `docker pull ghcr.io/rtvkiz/minimal-openbao:latest` | 아니요 | 비밀 관리 (Vault 포크) |
| Keycloak | `docker pull ghcr.io/rtvkiz/minimal-keycloak:latest` | 예 | ID 및 액세스 관리 |
| Qdrant | `docker pull ghcr.io/rtvkiz/minimal-qdrant:latest` | 아니요 | AI/ML용 벡터 DB (Rust) |
| Registry | `docker pull ghcr.io/rtvkiz/minimal-registry:latest` | 아니요 | OCI 배포 레지스트리 (Docker Registry v2), 소스에서 빌드 |
| Consul | `docker pull ghcr.io/rtvkiz/minimal-consul:latest` | 아니요 | HashiCorp Consul 서비스 검색 + KV (BUSL-1.1) |
| | | **쿠버네티스 및 CI** | |
| Helm | `docker pull ghcr.io/rtvkiz/minimal-helm:latest` | 아니요 | 쿠버네티스 차트 배포를 위한 Helm 3 CLI |
| kubectl | `docker pull ghcr.io/rtvkiz/minimal-kubectl:latest` | 아니요 | 쿠버네티스 클러스터 작업을 위한 kubectl CLI |
| | | **애플리케이션** | |
| Jenkins | `docker pull ghcr.io/rtvkiz/minimal-jenkins:latest` | 예 | CI/CD 자동화 |
| Gitea | `docker pull ghcr.io/rtvkiz/minimal-gitea:latest` | 예 | 자가 호스팅 Git 서비스 |
| MinIO | `docker pull ghcr.io/rtvkiz/minimal-minio:latest` | 아니요 | S3 호환 객체 스토리지 |
| Mailpit | `docker pull ghcr.io/rtvkiz/minimal-mailpit:latest` | 아니요 | 개발자를 위한 SMTP 및 이메일 테스트, 소스에서 빌드 |
| | | **AI/ML** | |
| CUDA Python | *disabled* | 아니요 | Python + CUDA 12.9 + cuDNN 9.10 (빌드 중단됨, 코드 유지됨) |

*\*HTTPD, Jenkins, Kafka, MySQL, OpenSearch, Gitea, Keycloak는 전이적 Wolfi 종속성 또는 업스트림 진입점에서 요구하기 때문에 셸(`sh`/`busybox`/`bash`)을 포함합니다. CI는 셸 존재를 정보 제공용으로 간주합니다.*

</details>

## Quick Start```bash
# Python app
docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-python:latest /app/main.py

# Nginx reverse proxy
docker run -d -p 8080:80 ghcr.io/rtvkiz/minimal-nginx:latest

# PostgreSQL
docker run -d -p 5432:5432 -v pgdata:/var/lib/postgresql/data \
  ghcr.io/rtvkiz/minimal-postgres-slim:latest

# Redis
docker run -d -p 6379:6379 ghcr.io/rtvkiz/minimal-redis-slim:latest

# Kafka (KRaft mode — auto-initializes storage on first boot)
docker run -d -p 9092:9092 -v kafkadata:/var/kafka/data \
  ghcr.io/rtvkiz/minimal-kafka:latest
더 많은 docker run 예제 (Node, Go, MySQL, MariaDB, Java, .NET, PHP, Rails, RabbitMQ, Gitea, …)


```bash

Node.js

docker run --rm -v $(pwd):/app -w /app ghcr.io/rtvkiz/minimal-node-slim:latest index.js

Bun

docker run --rm ghcr.io/rtvkiz/minimal-bun:latest --version

Go

docker run --rm -v $(pwd):/app -w /app ghcr.io/rtvkiz/minimal-go:latest build -o /tmp/app .

HTTPD

docker run -d -p 8080:80 ghcr.io/rtvkiz/minimal-httpd:latest

Jenkins

docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home ghcr.io/rtvkiz/minimal-jenkins:latest

MySQL

docker run -d -p 3306:3306 -v mysqldata:/var/lib/mysql ghcr.io/rtvkiz/minimal-mysql:latest

Memcached

docker run -d -p 11211:11211 ghcr.io/rtvkiz/minimal-memcached:latest

SQLite

docker run --rm -v $(pwd):/data ghcr.io/rtvkiz/minimal-sqlite:latest /data/mydb.sqlite "SELECT sqlite_version();"

.NET

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-dotnet:latest /app/myapp.dll

업데이트 일정

트리거시점목적
예약됨6시간마다Wolfi의 최신 CVE 패치를 가져옴
푸시main 브랜치 병합 시설정 변경 사항 배포
수동워크플로 디스패치긴급 재빌드

취약점 스캔 결과는 실시간 카탈로그, 작업 요약, GitHub Security 탭에 표시됩니다.

자동 업스트림 추적

소스 빌드 이미지는 전용 워크플로가 매일 업스트림을 확인하고 PR을 열어 추적합니다:

이미지별 업데이트 워크플로 (총 21개)
이미지 사양 (버전, 사용자, 엔트리포인트)

로컬에서 빌드하기```bash

Prerequisites

go install chainguard.dev/apko@latest go install chainguard.dev/melange@latest brew install anchore/grype/grype

Build & test a specific image

make python make test-python

Build everything

make build

Scan for CVEs

make scan

root@kitploit:~
See the [Makefile](https://github.com/rtvkiz/minimal/blob/HEAD/Makefile) for the full target list.

## 프로젝트 구조

<details>
<summary><strong>저장소 레이아웃</strong></summary>

<br>```
minimal/
├── <image>/
│   ├── apko/<name>.yaml          # final image config
│   ├── melange.yaml              # source build (optional)
│   └── test.sh                   # smoke test
├── .github/
│   ├── SECURITY.md               # disclosure policy + verification recipes
│   └── workflows/
│       ├── build.yml             # main CI pipeline (6h rebuilds)
│       ├── patch-go-deps.yml     # daily Go transitive CVE patching
│       ├── update-<image>.yml    # per-image upstream version tracking
│       └── update-wolfi-packages.yml
├── Makefile
├── README.md
├── CONTRIBUTING.md
└── LICENSE

상태 및 로드맵

최근 적용된 사항:

  • 모든 이미지에 Cosign 키리스 서명 적용.
  • in-toto 증명(attestation)으로 첨부된 SPDX SBOM, cosign verify-attestation으로 검증 가능.
  • SLSA v1.0 빌드 출처(provenance), gh attestation verify로 검증 가능.
  • 이미지별 분석이 포함된 공개 CVE 대시보드.
  • 6시간 재빌드 주기, 매일 Go 전이 CVE 패치 적용.

다음 계획:

  • 이미지에서 실제로 악용 가능하지 않은 CVE에 대한 VEX 명세서를 추가하여 대시보드에 노이즈가 표시되지 않도록 함.
  • 이미지별 업데이트 워크플로우를 단일 매트릭스 기반 작업으로 통합.
  • 특수 AI/ML 이미지(CUDA 지원 Python 변형) — HN 스레드에서 논의가 있었으며 탐색할 가치가 있어 보임.

이 프로젝트가 아닌 것:

  • 단독 유지 관리이므로 공급업체 SLA나 온콜 로테이션이 없음.
  • FedRAMP / FIPS / STIG 인증을 받지 않음. 검증 가능한 출처와 SBOM은 감사에 도움이 되지만, 문서 작업을 대체하지는 않음.

기여

PR은 언제나 환영합니다. CONTRIBUTING.md에는 빌드 설정, 이미지 규칙, 푸시 전에 실행하는 로컬 검증 체크리스트가 포함되어 있습니다.

보안 문제를 발견하신 경우, 공개 이슈 대신 GitHub의 비공개 취약성 보고를 이용해 주십시오. 공개 정책 및 응답 타임라인은 .github/SECURITY.md에 명시되어 있습니다.

라이선스

MIT — LICENSE 참조.

컨테이너 이미지에는 Wolfi 및 기타 소스의 패키지가 포함되어 있으며, 각각 고유한 라이선스(Apache-2.0, MIT, GPL, LGPL, BSD 등)가 적용됩니다. 전체 라이선스 정보는 각 이미지의 SBOM에 포함되어 있습니다:```bash cosign download sbom ghcr.io/rtvkiz/minimal-python:latest | jq '.packages[].licenseConcluded'

root@kitploit:~
도구 다운로드

Java

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-java:latest -jar /app/myapp.jar

PHP

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-php:latest /app/index.php

Rails

docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-rails:latest -e "require 'rails'; puts Rails.version"

RabbitMQ

docker run -d -p 5672:5672 -v rabbitmqdata:/var/lib/rabbitmq ghcr.io/rtvkiz/minimal-rabbitmq:latest

Gitea

docker run -d -p 3000:3000 -v giteadata:/data/gitea ghcr.io/rtvkiz/minimal-gitea:latest

root@kitploit:~
</details>

## 프로덕션에서 사용하기

**변경 불가능한 버전 태그를 고정하세요.** 모든 이미지는 두 개의 태그와 함께 게시됩니다:

| 태그 | 형식 | 예시 | 변경 가능 |
|---|---|---|---|
| 버전 | `VERSION-rEPOCH` | `ghcr.io/rtvkiz/minimal-redis-slim:8.4.1-r0` | 아니요 |
| 최신 | `latest` | `ghcr.io/rtvkiz/minimal-redis-slim:latest` | 예 |

### 개발 변형 (`:latest-dev`)

대부분의 이미지는 **프로덕션과 동일한 소스**로 빌드된 `-dev` 동반 이미지를 게시합니다 — 동일한 런타임 버전, 동일한 선별된 패키지 세트 — 그리고 셸, 패키지 관리자, 컴파일러 툴체인, 이미지에 적합한 디버깅 도구가 포함됩니다. CI 빌드 단계 및 팟 내 디버깅을 위한 것이며, **프로덕션 배포용이 아닙니다.**

일반적인 다단계 사용법:```dockerfile
FROM ghcr.io/rtvkiz/minimal-ruby:latest-dev AS build
WORKDIR /work
COPY Gemfile Gemfile.lock ./
RUN bundle install

FROM ghcr.io/rtvkiz/minimal-ruby:latest
COPY --from=build /work /work

대화형 셸을 얻으려면 엔트리포인트를 재정의하세요 (개발 이미지는 프로덕션 엔트리포인트를 유지하여 바로 사용할 수 있는 호환성을 제공합니다):```bash docker run -it --entrypoint /bin/sh ghcr.io/rtvkiz/minimal-:latest-dev docker run -it --entrypoint /bin/bash ghcr.io/rtvkiz/minimal-:latest-dev

root@kitploit:~
Dev variants share the prod image's signing, SBOM, and SLSA provenance pipeline. They are **not tracked on the public CVE dashboard** — they intentionally ship a larger attack surface. See [`.github/SECURITY.md`](https://github.com/rtvkiz/minimal/blob/HEAD/.github/SECURITY.md#dev-variants--dev-tags) for the policy and [`docs/dev-variants/CONVENTIONS.md`](https://github.com/rtvkiz/minimal/blob/HEAD/docs/dev-variants/CONVENTIONS.md) for the package composition rules.

**현재 제공 중:** 57개 중 57개의 개발 변형 — 카탈로그의 모든 이미지가 이제 프로덕션과 동일한 소스로 빌드된 `:latest-dev` 동반 이미지를 제공합니다.

<details>
<summary><strong>이미지별 개발 변형 상태</strong></summary>

<br>

범례: ✅ `:latest-dev` 제공 중 · 🚧 진행 중 · 📝 계획됨

카테고리는 [`docs/dev-variants/templates/`](https://github.com/rtvkiz/minimal/blob/HEAD/docs/dev-variants/templates/)의 세 가지 템플릿(런타임/데몬/서버)을 따릅니다. "Reference" 열은 Chainguard의 공개 `<image>-public/devConfigs` 패키지 세트를 미러링하는 위치를 나타냅니다. **in-house**는 Chainguard가 Enterprise 전용 이미지를 제공하며, 우리가 직접 개발 구성을 설계했음을 의미합니다.

| 이미지 | 카테고리 | 참조 | 상태 |
|---|---|---|---|
| ruby | 런타임 | Chainguard `ruby-public` | ✅ |
| python | 런타임 | Chainguard `python-public` | ✅ |
| node-slim | 런타임 | Chainguard `node-public` | ✅ |
| go | 런타임 | Chainguard `go-public` | ✅ |
| java | 런타임 | Chainguard `jdk-public` | ✅ |
| dotnet | 런타임 | Chainguard `dotnet-runtime-10-public` | ✅ |
| php | 런타임 | in-house (composer 지연됨 — PR 참조) | ✅ |
| rails | 런타임 | in-house (ruby에서 파생) | ✅ |
| bun | 런타임 | in-house | ✅ |
| deno | 런타임 | in-house | ✅ |
| postgres-slim | 데몬 | Chainguard `postgres-public` | ✅ |
| mariadb | 데몬 | Chainguard `mariadb-public` | ✅ |
| mysql | 데몬 | in-house | ✅ |
| redis-slim | 데몬 | Chainguard `redis-public` | ✅ |
| valkey | 데몬 | Chainguard `valkey-public` | ✅ |
| memcached | 데몬 | in-house | ✅ |
| sqlite | 데몬 | in-house | ✅ |
| opensearch | 데몬 | in-house | ✅ |
| kafka | 데몬 | in-house | ✅ |
| rabbitmq | 데몬 | in-house | ✅ |
| nats | 데몬 | in-house | ✅ |
| etcd | 데몬 | in-house | ✅ |
| qdrant | 데몬 | in-house | ✅ |
| nginx | 서버 | Chainguard `nginx-public` | ✅ |
| haproxy | 서버 | Chainguard `haproxy-public` | ✅ |
| minio | 서버 | Chainguard `minio-client-public` (서버는 in-house) | ✅ |
| httpd | 서버 | in-house | ✅ |
| caddy | 서버 | in-house | ✅ |
| traefik | 서버 | in-house | ✅ |
| envoy | 서버 | in-house | ✅ |
| prometheus | 서버 | in-house | ✅ |
| victoria-metrics | 서버 | in-house | ✅ |
| jaeger | 서버 | in-house | ✅ |
| otelcol | 서버 | in-house | ✅ |
| loki | 서버 | in-house | ✅ |
| fluent-bit | 서버 | in-house | ✅ |
| node-exporter | 서버 | in-house | ✅ |
| blackbox-exporter | 서버 | in-house | ✅ |
| pushgateway | 서버 | in-house | ✅ |
| coredns | 서버 | in-house | ✅ |
| gitea | 서버 | in-house | ✅ |
| jenkins | 서버 | in-house | ✅ |
| keycloak | 서버 | in-house | ✅ |
| openbao | 서버 | in-house | ✅ |
| registry | 서버 | Chainguard `registry-public` | ✅ |
| mailpit | 서버 | in-house (Chainguard는 공개 mailpit을 제공하지 않음) | ✅ |
| consul | 서버 | in-house (Chainguard는 공개 consul을 제공하지 않음; BUSL-1.1) | ✅ |
| tempo | 서버 | in-house (Chainguard는 공개 tempo를 제공하지 않음; AGPL-3.0) | ✅ |
| mosquitto | 데몬 | in-house (Chainguard는 공개 mosquitto를 제공하지 않음; EPL-2.0/EDL-1.0) | ✅ |

</details>```dockerfile
# Production Dockerfile — pin by version tag, ideally by digest
FROM ghcr.io/rtvkiz/minimal-go:1.26.0-r0 AS build
WORKDIR /src
COPY . .
RUN go build -o /out/app

FROM ghcr.io/rtvkiz/minimal-python:3.14.0-r0
COPY --from=build /out/app /usr/bin/app
ENTRYPOINT ["/usr/bin/app"]

Kubernetes에서 서명 + 출처 강제 적용 with sigstore-policy-controller or Kyverno:```yaml

Kyverno ClusterPolicy — only allow signed minimal-* images

apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: verify-minimal-images spec: validationFailureAction: Enforce rules: - name: check-signature match: any: - resources: kinds: [Pod] verifyImages: - imageReferences: - "ghcr.io/rtvkiz/minimal-" attestors: - entries: - keyless: subject: "https://github.com/rtvkiz/minimal/" issuer: "https://token.actions.githubusercontent.com"

root@kitploit:~
`-r0` 접미사는 개정 번호입니다. 업스트림 버전이 올라갈 때마다 `r0`로 재설정되며, 동일한 업스트림 버전의 재빌드(예: 의존성 패치) 시에는 `r1`, `r2`…로 증가합니다. 이전 버전 태그는 재빌드 시에도 유지됩니다.

## 빌드 파이프라인

<details>
<summary><strong>파이프라인 다이어그램</strong></summary>

<br>```
┌─────────────────────────────────────────────────────────────────────────────┐
│                            BUILD PIPELINE                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  Signing Keys:                                                              │
│  ┌─────────────────────────────────────────────────────────────────────┐    │
│  │  PRs: keygen job (ephemeral) │ Main: repository secrets (persistent)│    │
│  └─────────────────────────────────────────────────────────────────────┘    │
│                              │                                              │
│                              ▼                                              │
│  ┌─────────────────────────────┐    ┌─────────────────────────────────────┐ │
│  │  melange-build              │    │      build-apko                     │ │
│  │  Native ARM64 runners       │    │      Wolfi pre-built packages       │ │
│  │  ┌────────┐  ┌────────────┐ │    │  ┌─────────┐     ┌───────────────┐  │ │
│  │  │ x86_64 │  │  aarch64   │ │    │  │  Wolfi  │────►│ apko publish  │  │ │
│  │  │ ubuntu │  │ ubuntu-arm │ │    │  │ packages│     │ (multi-arch)  │  │ │
│  │  └────┬───┘  └─────┬──────┘ │    │  └─────────┘     └───────┬───────┘  │ │
│  │       └─────┬──────┘        │    │                          │          │ │
│  │             ▼               │    └──────────────────────────│──────────┘ │
│  │     ┌──────────────┐        │                               │            │
│  │     │   artifacts  │        │                               │            │
│  │     │ (x86+arm64)  │        │                               │            │
│  │     └──────┬───────┘        │                               │            │
│  └────────────│────────────────┘                               │            │
│               ▼                                                │            │
│  ┌─────────────────────────────┐                               │            │
│  │  build-melange              │                               │            │
│  │  ┌─────────┐ ┌────────────┐ │                               │            │
│  │  │  merge  │►│   apko     │─┼───────────────────────────────┤            │
│  │  │ packages│ │  publish   │ │                               │            │
│  │  └─────────┘ └────────────┘ │                               │            │
│  └─────────────────────────────┘                               │            │
│                                                                ▼            │
│  ┌──────────────────────────────────────────────────────────────────────┐   │
│  │                     Verification & Attestation                       │   │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌─────────────────────┐   │   │
│  │  │  Grype   │─►│   Test   │─►│  cosign  │─►│  SBOM + SLSA L3     │   │   │
│  │  │ CVE scan │  │  image   │  │   sign   │  │    attestations     │   │   │
│  │  └──────────┘  └──────────┘  └──────────┘  └─────────────────────┘   │   │
│  └──────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  Note: PRs build and test but do not publish. Only main branch publishes.   │
└─────────────────────────────────────────────────────────────────────────────┘
워크플로감시 대상수행 작업
update-jenkins.ymlJenkins LTS 릴리스melange 구성, Makefile, build.yml의 버전 업데이트
update-redis.ymlRedis GitHub 릴리스버전과 SHA256 업데이트
update-mysql.ymlMySQL LTS (8.4.x) GitHub 태그버전과 SHA256 업데이트
update-memcached.ymlMemcached GitHub 릴리스버전과 SHA256 업데이트
update-kafka.ymlApache Kafka 4.x GitHub 태그버전과 SHA512 업데이트
update-php.ymlphp.net 릴리스 API버전과 SHA256 업데이트; 새 부/주 버전 시리즈에 대해 이슈 열기
update-rails.ymlRubyGems API + Ruby GitHub 태그Rails gem과 Ruby 소스 버전을 독립적으로 업데이트
update-rabbitmq.ymlRabbitMQ GitHub 릴리스버전과 SHA256 업데이트
update-minio.ymlMinIO GitHub 릴리스릴리스 태그, 날짜 기반 버전, SHA256 업데이트
update-victoria-metrics.ymlVictoriaMetrics GitHub 릴리스버전과 SHA256 업데이트
update-jaeger.ymlJaeger v2.x GitHub 릴리스버전과 SHA256 업데이트; 주 버전 변경 시 경고
update-otelcol.ymlOTel Collector 안정 릴리스버전과 SHA256 업데이트; 사전 릴리스 건너뜀
update-qdrant.ymlQdrant v1.x GitHub 릴리스버전과 SHA256 업데이트
update-etcd.ymletcd v3.x GitHub 릴리스버전과 SHA256 업데이트
update-opensearch.ymlOpenSearch 3.x GitHub 릴리스Makefile과 README의 버전 업데이트
update-gitea.ymlGitea v1.x GitHub 태그버전과 SHA256 업데이트
update-coredns.ymlCoreDNS v1.x GitHub 태그버전과 SHA256 업데이트
update-openbao.ymlOpenBao v2.x GitHub 태그버전과 SHA256 업데이트
update-loki.ymlLoki v3.x GitHub 태그버전과 SHA256 업데이트
update-fluent-bit.ymlFluent Bit v5.x GitHub 태그버전과 SHA256 업데이트
update-keycloak.ymlKeycloak 26.x GitHub 태그버전과 SHA256 업데이트
update-wolfi-packages.ymlWolfi APKINDEX새 Python, Node, Go, .NET, Java, PostgreSQL, Deno 버전 감지

패치 업데이트는 자동 PR로 생성되고 CI에서 검증됩니다. 부/주 버전 업데이트는 수동 업그레이드 체크리스트와 함께 GitHub 이슈를 생성합니다.

이미지버전사용자엔트리포인트작업 디렉토리
Python3.14.xnonroot (65532)/usr/bin/python3/app
Node.js-slim25.xnonroot (65532)/usr/bin/dumb-init -- /usr/bin/node/app
Bunlatestnonroot (65532)/usr/bin/bun/app
Go1.26.xnonroot (65532)/usr/bin/go/app
Nginxmainlinenginx (65532)/usr/sbin/nginx -g "daemon off;"/
HTTPD2.4.xwww-data (65532)/usr/sbin/httpd -DFOREGROUND/var/www/localhost/htdocs
Jenkins2.555.x LTSjenkins (1000)tini -- java -jar jenkins.war/var/jenkins_home
Redis8.6.xredis (65532)/usr/bin/redis-server/
MySQL8.4.xmysql (65532)/usr/bin/docker-entrypoint.sh/
MariaDB11.4.xmariadb (65532)/usr/bin/mariadbd/var/lib/mysql
Memcached1.6.xmemcached (65532)/usr/bin/memcached/
PostgreSQL18.xpostgres (70)/usr/bin/postgres/
SQLite3.51.xnonroot (65532)/usr/bin/sqlite3/data
.NET Runtime10.xnonroot (65532)/usr/bin/dotnet/app
Java26.xnonroot (65532)/usr/bin/java/app
Ruby4.0.xnonroot (65532)/usr/bin/ruby/work
PHP8.5.xnonroot (65532)/usr/bin/php/app
RailsRuby 4.0.x + Rails 8.1.xnonroot (65532)/usr/bin/ruby/app
Kafka4.2.xkafka (65532)/usr/bin/kafka-entrypoint.sh/
RabbitMQ4.3.xrabbitmq (65532)/opt/rabbitmq/sbin/rabbitmq-server/
NATSlatestnonroot (65532)/usr/bin/nats-server/
Valkeylatestnonroot (65532)/usr/bin/valkey-server/
MinIORELEASE.2025-10-15minio (65532)/usr/bin/minio server --console-address :9001 /data/data
OpenSearch3.7.0opensearch (65532)/usr/share/opensearch/opensearch-docker-entrypoint.sh/usr/share/opensearch/data
etcd3.6.xnonroot (65532)/usr/bin/etcd/var/lib/etcd
VictoriaMetrics1.142.xnonroot (65532)/usr/bin/victoria-metrics/
Jaeger2.18.xnonroot (65532)/usr/bin/jaeger/
OTel Collector0.151.xnonroot (65532)/usr/bin/otelcol/
Qdrant1.17.xnonroot (65532)/usr/bin/qdrant/qdrant
Deno2.xnonroot (65532)/usr/bin/deno/app
Gitea1.26.xgitea (65532)/usr/bin/gitea web --config /etc/gitea/app.ini/var/lib/gitea
CoreDNS1.14.xnonroot (65532)/usr/bin/coredns/
OpenBao2.5.xopenbao (65532)/usr/bin/bao server/openbao/data
Keycloak26.6.xkeycloak (65532)/opt/keycloak/bin/kc.sh start-dev/opt/keycloak/data
Loki3.6.xloki (65532)/usr/bin/loki/loki
Fluent Bit5.0.xnonroot (65532)/usr/bin/fluent-bit/