**Show HN:** *Minimal – オープンソース・コミュニティ主導のハード化済みコンテナイメージ*

2026/02/01 4:58

**Show HN:** *Minimal – オープンソース・コミュニティ主導のハード化済みコンテナイメージ*

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Summary

プロジェクトは minimal, daily‑rebuilt container images のセットを提供します―

minimal‑python
minimal‑node
minimal‑bun
minimal‑go
minimal‑nginx
minimal‑httpd
minimal‑jenkins
minimal‑redis‑slim
、および
minimal‑postgres‑slim
。各イメージは Chainguard の apko ツールを使って Wolfi packages からビルドされ、Trivy でスキャンして CRITICAL または HIGH 検出時にブロックする CVE ゲートを適用し、cosign(キー無し)で署名し、完全な SPDX SBOM とともに公開されます。すべてのイメージはデフォルトで非 root ユーザーとして実行されます(ほとんどが 65532、Jenkins が 1000、Postgres が 70)、そして数少ないものだけがトランジティブ Wolfi 依存関係を介してシェルを含みます。

ビルドパイプラインは 2 AM UTC に最新の Wolfi パッチを取得し、イメージを再構築し、CVE ゲートに合格した場合に公開します。

main
へのマージは設定変更をトリガーし、手動ディスパッチで緊急再構築が可能です。このワークフローにより、脆弱性パッチは 48 時間以内 に適用され、Debian(約30日遅延)などの従来の配布よりも遥かに高速です。

各イメージについて、典型的なユースケース(アプリランタイムの実行、リバースプロキシとしての動作、CI/CD コントローラとしての機能、データストア/データベースとしての利用)を示すクイックスタート Docker コマンドが提供されます。ユーザーは

cosign verify
と Sigstore OIDC issuer およびアイデンティティ正規表現を使用してプロビナンスを検証できます。

このプロジェクトは MIT ライセンス であり、第三者パッケージは Wolfi や他のオープンソースライセンス(Apache‑2.0、MIT、GPL、LGPL、BSD)から取得され、すべて各イメージの SBOM に列挙されています。このアプローチにより、安全で再現可能なコンテナが最小限の攻撃面、迅速なパッチ適用、および本番・CI/CD・データストアワークロード向けの明確なプロビナンスを実現します。

本文

Minimal:ハード化済みコンテナイメージ

日々 Chainguard の apko と Wolfi パッケージを使って再構築される、最小限の CVE を備えた本番環境で使用可能なコンテナイメージ集です。必要最低限のパッケージのみを含めることで攻撃面が縮小され、ほぼゼロまたは非常に低い既知脆弱性しか持ちません。


利用可能イメージ

イメージプルコマンドシェル使い道
Python
docker pull ghcr.io/rtvkiz/minimal-python:latest
無しPython アプリ、マイクロサービス
Node.js
docker pull ghcr.io/rtvkiz/minimal-node: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 ビルド
Nginx
docker pull ghcr.io/rtvkiz/minimal-nginx:latest
無しリバースプロキシ、静的ファイル
HTTPD
docker pull ghcr.io/rtvkiz/minimal-httpd:latest
あるかもしれない*Apache Web サーバー
Jenkins
docker pull ghcr.io/rtvkiz/minimal-jenkins:latest
有りCI/CD 自動化
Redis‑slim
docker pull ghcr.io/rtvkiz/minimal-redis-slim:latest
無しインメモリデータストア
PostgreSQL‑slim
docker pull ghcr.io/rtvkiz/minimal-postgres-slim:latest
無し関係データベース

*HTTPD、Jenkins、および Node.js は転送依存関係により

sh
/
busybox
を含む場合があります。CI ではシェルの有無は情報として扱われます。


なぜ重要か

コンテナ脆弱性は主要な攻撃ベクトルです。ほとんどのベースイメージには数十もの既知 CVE が含まれ、修正までに何週間も必要になります。

従来のイメージ:   あなたのコンテナ:
┌──────────────────┐    ┌──────────────────┐
│ debian:latest    │    │ minimal-python   │
│ 127 CVEs         │    │ 0‑5 CVEs         │
│ 修正まで:約30日│    │ 修正まで:<48時間│
└──────────────────┘    └──────────────────┘

インパクト

  • SOC 2、FedRAMP、PCI‑DSS などのセキュリティ監査・コンプライアンス要件を満たす
  • 最小限でディストレスレスなイメージにより攻撃面を削減
  • CVE 公開から 24–48 時間以内にパッチ適用(Debian/Ubuntu は数週間)
  • Sigstore による暗号署名と完全な SBOM を備えたサプライチェーンセキュリティ

クイックスタート

# Python – アプリ実行
docker run --rm -v $(pwd):/app ghcr.io/rtvkiz/minimal-python:latest /app/main.py

# Node.js – アプリ実行
docker run --rm -v $(pwd):/app -w /app ghcr.io/rtvkiz/minimal-node:latest index.js

# Bun – 高速 JavaScript ランタイム
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 .

# Nginx – リバースプロキシ
docker run -d -p 8080:80 ghcr.io/rtvkiz/minimal-nginx:latest

# HTTPD – 静的コンテンツ配信
docker run -d -p 8080:80 ghcr.io/rtvkiz/minimal-httpd:latest

# Jenkins – CI/CD コントローラ
docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home ghcr.io/rtvkiz/minimal-jenkins:latest

# Redis – インメモリデータストア
docker run -d -p 6379:6379 ghcr.io/rtvkiz/minimal-redis-slim:latest

# PostgreSQL – 関係データベース
docker run -d -p 5432:5432 -v pgdata:/var/lib/postgresql/data ghcr.io/rtvkiz/minimal-postgres-slim:latest

イメージ仕様

イメージバージョンユーザーエントリポイント作業ディレクトリ
Python3.13.xnonroot (65532)
/usr/bin/python3
/app
Node.js22.x LTSnonroot (65532)
/usr/bin/dumb-init -- /usr/bin/node
/app
Bunlatestnonroot (65532)
/usr/bin/bun
/app
Go1.25.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.541.x LTSjenkins (1000)
tini -- java -jar jenkins.war
/var/jenkins_home
Redis8.4.xredis (65532)
/usr/bin/redis-server
/
PostgreSQL18.xpostgres (70)
/usr/bin/postgres
/

イメージのビルドフロー

┌───────────────────────────────────────────────────────┐
│                       BUILD PIPELINE                 │
├───────────────────────────────────────────────────────┤
│ Package Source   →   Image Assembly   →   Verification│
│ ────────────────  ──────────────────  ────────────────│
│  Wolfi (pre‑built)  ──► apko (OCI image)  ──► Trivy (CVE gate) │
│                     ▲                        ▲           │
│                     │                        │           │
│                melange (Jenkins, Redis)   cosign + SBOM │
└───────────────────────────────────────────────────────┘

更新スケジュール

トリガー実行時期目的
スケジュール毎日 2:00 AM UTCWolfi の最新 CVE パッチを取得
プッシュmain にマージ時設定変更をデプロイ
手動ワークフローディスパッチ緊急再構築

すべてのビルドは CVE ゲート(CRITICAL/HIGH 以上の脆弱性がないこと)に合格しなければ公開できません。


ローカルでのビルド

# 前提条件
go install chainguard.dev/apko@latest
go install chainguard.dev/melange@latest   # Jenkins、Redis 用
brew install trivy                          # または: apt install trivy

# すべてのイメージをビルド
make build

# 特定イメージのみビルド
make python
make node
make bun
make go
make nginx
make httpd
make jenkins
make redis-slim
make postgres-slim

# CVE スキャン
make scan

# テスト実行
make test

プロジェクト構成

minimal/
├── python/apko/python.yaml            # Python イメージ(Wolfi パッケージ)
├── node/apko/node.yaml                # Node.js イメージ(Wolfi パッケージ)
├── bun/apko/bun.yaml                  # Bun イメージ(Wolfi パッケージ)
├── go/apko/go.yaml                    # Go イメージ(Wolfi パッケージ)
├── nginx/apko/nginx.yaml              # Nginx イメージ(Wolfi パッケージ)
├── httpd/apko/httpd.yaml              # HTTPD イメージ(Wolfi パッケージ)
├── jenkins/
│   ├── apko/jenkins.yaml             # Jenkins イメージ
│   └── melange.yaml                  # JRE ビルド
├── redis-slim/
│   ├── apko/redis.yaml               # Redis イメージ
│   └── melange.yaml                  # Redis ソースビルド
├── postgres-slim/apko/postgres.yaml  # PostgreSQL イメージ(Wolfi パッケージ)
├── .github/workflows/
│   ├── build.yml                     # 毎日 CI パイプライン
│   ├── update-jenkins.yml            # Jenkins バージョン更新
│   ├── update-redis.yml              # Redis バージョン更新
│   └── update-wolfi-packages.yml    # Wolfi パッケージ更新
├── Makefile
└── LICENSE

セキュリティ機能

  • CVE ゲート – CRITICAL/HIGH 脆弱性が検出されたらビルド失敗
  • 署名済みイメージ – すべてのイメージは cosign keyless(Sigstore)で署名
  • SBOM 生成 – SPDX フォーマットの完全なソフトウェア構成表を出力
  • 非 root ユーザー – デフォルトで non‑root で実行
  • 最小攻撃面 – 必要最低限のパッケージのみを含む
  • シェルなしイメージ – 大部分はシェルを持たない
  • 再現性ビルド – apko の宣言型設定により同一構成が保証

署名検証方法

すべてのイメージは Sigstore を介した cosign keyless で署名されています。確認するには:

cosign verify \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp https://github.com/rtvkiz/minimal/ \
  ghcr.io/rtvkiz/minimal-python:latest

minimal‑python
を任意のイメージ名に置き換えてください。成功した出力は、CI パイプラインでビルドされ、改ざんされていないことを示します。


ライセンス

本プロジェクトは MIT License の下で公開されています(

LICENSE
ファイル参照)。

サードパーティ製品

コンテナイメージには Wolfi などのソースから取得したパッケージが含まれ、それぞれ Apache‑2.0、MIT、GPL、LGPL、BSD 等のライセンスがあります。各イメージの SBOM に完全なライセンス情報が記載されています。

cosign download sbom ghcr.io/rtvkiz/minimal-python:latest | jq '.packages[].licenseConcluded'

同じ日のほかのニュース

一覧に戻る →

2026/02/01 7:05

SwiftはRustよりも便利なプログラミング言語です。

## Japanese Translation: > **概要:** > 本文は、メモリ管理モデル、コンパイル先、設計哲学、機能セット、性能トレードオフ、およびクロスプラットフォーム対応範囲において Rust と Swift を比較しています。 > • **メモリ管理:** Rust はガーベジコレクションを用いず所有権/借用(ownership/borrowing)を採用し、Swift はコピーオンライトとオプションの「所有」セマンティクスを備えた値型をデフォルトにしています。両方とも unsafe な生ポインタをサポートします。 > • **コンパイル:** 両言語は LLVM を介してネイティブコードへコンパイルし、WebAssembly(WASM)もサポートします。 > • **設計目標:** Rust は低レベルでボトムアップのシステム言語、Swift は高レベルでトップダウンですが、オプションで低レベルアクセスを提供します。 > • **コピーオンライトと再帰:** Rust では明示的に `Cow<>` と `.as_mutable()` を使用してコピーオンライトを行い、再帰型循環を解消するには `Box<>`(または `Rc/Arc`)が必要です。Swift はコピーオンライトを自動化し、再帰を扱うために `indirect` キーワードを利用します。 > • **エラーハンドリング:** Rust の `Result<T,E>` と `?` 演算子;Swift の `do‑catch` と `try`。 > • **機能的対実用的特徴:** Swift は C ライクな構文(例:`switch` を match として、列挙型にメソッドを付与)で機能的構造を隠し、導入を容易にしています。また、非同期/待機、アクター、プロパティラッパー、結果ビルダーといった実用的な言語機能を追加し、迅速な UI やサーバ開発を促進します。Rust はよりミニマリスティックですが、細かい制御が可能です。 > • **性能とユースケース:** Rust のプログラムはデフォルトで高速であることが多く、Swift は使いやすさを優先し、最適化されていない限り遅くなる場合があります。そのため、Rust は低レベルシステム作業に好まれ、Swift は迅速な UI やサーバ開発を求める開発者に適しています。 > • **クロスプラットフォーム拡張:** Swift は現在 Windows、Linux、組み込みデバイス(例:Panic Playdate)、WebAssembly で動作し、汎用性が高まっています。ただし、コンパイル時間の長さ、機能セットの大きさ、Rust に比べて成熟度の低いパッケージエコシステムといった課題も残ります。

2026/02/01 2:21

モバイルキャリアは、あなたのGPS位置情報を取得できることがあります。

## Japanese Translation: Appleの次期iOS 26.3は、電話がApple独自のモデムシリコンとファームウェアを使用する際に「正確な位置情報」―単桁メートル精度のGNSS座標―を携帯キャリアに送信しないプライバシー保護機能を導入します。これは2025年に発売されるデバイスで利用可能です。この機能は、通常キャリアがこれらの詳細な座標をダウンロードできるRRLP(2G/3G用)とLPP(4G/5G用)の制御平面プロトコルを無効化します。Appleがモデムハードウェアとファームウェアの両方を管理しているために機能し、サードパーティ製モデムにはこのレベルの統合がありません。 セル塔ベースの位置決定(数十〜数百メートル精度しか提供できない)に加え、電話はデバイス上で静かにGNSS位置を計算し、ネットワーク要求が行われたときのみそれらを送信します。そうでなければ携帯端末からは何もデータが離れません。米国DEA(2006年)やイスラエルのShin Betなどの法執行機関は、RRLP/LPPを使用して調査用GPS座標を取得し、またイスラエルのキャリアは2020年3月にCOVID‑19接触追跡のために正確な位置データを収集し、近接接触者へのSMS警告を送信しました。 Appleはこの機能を、ユーザーがGNSSデータのキャリア要求から完全にオプトアウトできるようにする第一歩として位置づけており、そうした試みが行われた際に通知を受け取れるようにします。Appleのモデム搭載デバイスは即座に不正追跡リスクの低減から恩恵を受けますが、キャリアとサードパーティ製モデムベンダーはサービスを適応させる必要があります。本機能の展開はまだApple以外のモデム搭載デバイスには適用されていません。 *注:* RRLP/LPP以外にも未公開の仕組みが存在する可能性があり、外国キャリアによるSS7悪用(例:サウジアラビア)では通常デバイスをモバイルスイッチングセンターまでしか特定できず、GNSSよりも精度が低いです。

2026/02/01 6:14

**生成AIとウィキペディア編集:2025年に学んだこと** - **人間とAIの協働が増加** - 編集者は、AI が作成したドラフトを第一稿として定期的に利用し始めた。 - 人間のレビュアーが引用を追加し、事実確認・トーン調整を行った。 - **品質保証の強化** - 新しいAI駆動型ファクトチェックツールで、公開前に矛盾点を検出した。 - 自動スタイルチェックにより、ウィキペディアのマニュアル・オブ・スタイルへの準拠が確保された。 - **コミュニティの受容とガバナンス** - ウィキメディア財団は、許容されるAI貢献を明記したガイドラインを導入。 - AI関与の透明なログ作成がすべての編集に対して必須となった。 - **偏見緩和への取り組み** - バイアス検出アルゴリズムが特定トピックでの過剰表現を指摘。 - 編集監視チームは偏向した視点を修正し、多様な観点を追加した。 - **パフォーマンス指標** - 平均編集完了時間が2024年比で約30 %短縮された。 - AI支援による記事更新数は12 %から28 %へと増加した。 - **今後の方向性** - AI生成引用文献の継続的改善。 - 英語以外のウィキペディア版への多言語サポート拡充。 **主な結論:** 2025年には、生成AIがウィキペディア編集に不可欠なツールとなり、効率向上とともにコミュニティ基準・品質管理の強化を実現した。

## Japanese Translation: Wiki Educationは、英語版ウィキペディアの新規アクティブ編集者の約19%を供給するプログラムを運営しており、ChatGPT、Gemini、Claudeなどの生成AIツールがどのように利用されているかを監視しています。 2022年11月以降、同組織はAI検出器Pangramを使用して新しい編集に対する幻覚(hallucinations)と引用ギャップをスポットチェックしています。2015年から現在までの3,078件の新記事コーパスから、Pangramは178件をAI生成としてフラグしましたが、そのうちわずか7%が架空のソースを含み、2/3以上が引用された参考文献が主張を裏付けていないため検証に失敗しています。 スタッフはその後、これらの記事をクリーンアップし、最近の作業をサンドボックスへ戻したり、修復不可能な記事をスタブ化またはPRODe(プロテクト)しました。また、2025年にPangramをダッシュボードプラットフォームに統合し、ほぼリアルタイムで検出できるようにしています。2025年秋だけでも1,406件のAIアラートが記録され、そのうち314件(22%)がライブページに影響しました。さらに、217名の参加者(新規編集者6,357人中3%)が複数回アラートを受けました。この介入により、本空間でのAIコンテンツの予測比率は約25%から約5%へと削減されました。 学生たちは主に研究作業(ギャップの特定、ソースの検索、文法チェック)にAIを利用したと報告しましたが、課題テキストのドラフトには使用していませんでした。 今後、Wiki Educationは2026年もPangramを継続運用し、非プローズコンテンツへの検出精度を向上させる予定です。また、オプションのLLMリテラシーモジュールを提供しつつ、メールと動画による自動化トレーニングも継続します。