Repolode
slimtoolkit

slimtoolkit/slim

SlimToolkit(Slim)は、Dockerfileやワークフローを変更せずに、既存のコンテナイメージを解析・軽量化・強化します。

スター
23,477
フォーク
851
未解決の Issue
213
最終コミット
先月

これは何?

Slimはコンテナイメージ向けのコマンドラインツールキットです。一時コンテナ内で実行中のアプリケーションを解析し、アプリケーションに必要なファイルだけを残して、より小さなイメージを生成します。READMEによると、多くのインタプリタ型言語のイメージで最大30倍、コンパイル済みのGoイメージではさらに大幅な軽量化が可能です。元のイメージのベースOS、パッケージマネージャー、ビルドプロセスはそのまま維持されます。

軽量化に加えて、Slimはアプリケーションの動作を観察してSeccompとAppArmorのセキュリティプロファイルを生成し、生成後のコンテナの攻撃対象領域を縮小します。サブコマンドには、xray(イメージレイヤーの調査とDockerfileのリバースエンジニアリング)、lint、build、debug(軽量化したコンテナにデバッグ用サイドカーを接続)、run、merge、レジストリ操作、脆弱性の検索があります。

SlimはGoで書かれており、Apache-2.0ライセンスのもと、バイナリ、Homebrew formula、Dockerイメージとして配布されています。Ubuntu、Debian、CentOS、Alpine、Distrolessをベースにした環境で、Node.js、Python、Ruby、Java、Go、Rust、Elixir、PHPのアプリに利用されています。

主な機能

  • 01実行中のアプリケーションを解析してコンテナイメージを軽量化します。Dockerfileの変更は不要です。
  • 02SeccompとAppArmorのセキュリティプロファイルを自動生成します。
  • 03xrayコマンドでイメージレイヤーを調査し、Dockerfileをリバースエンジニアリングします。
  • 04lintコマンドでDockerfileを検査します。
  • 05軽量化したコンテナのトラブルシューティングに使える、デバッグ用サイドカーのワークフローを提供します。
  • 06レジストリ操作、イメージのマージ、脆弱性の検索に対応します。

ユースケース

  • Node.js、Python、Ruby、Goのサービスで、本番用イメージのサイズを削減する。
  • 自動生成したSeccompプロファイルでシステムコールを制限し、コンテナを強化する。
  • 中身やビルド方法を把握するため、詳細の分からないイメージを調査する。
  • Docker化されたコマンドラインツールを、小さく単機能なイメージにパッケージ化する。

クイックスタート

  1. 1

    README のリンクから、お使いのプラットフォーム用の zip または tar.gz パッケージをダウンロードします

    curl -L -o ds.tar.gz https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_linux.tar.gz
  2. 2

    パッケージを展開します

    tar -xvf ds.tar.gz
  3. 3

    slim バイナリを bin ディレクトリに移動します

    mv dist_linux/slim /usr/local/bin/
  4. 4

    README の例を使って slim 版をビルドし、画像を minify します

    slim build --target archlinux:latest --tag archlinux:curl --http-probe=false --exec "curl checkip.amazonaws.com"

使う前に知っておきたいこと

  • アプリケーションスタックによっては、動的に読み込まれるファイルを取り込むために、追加の probing フラグまたは --include-path が必要です。
  • 解析では一時的なコンテナを実行するため、Docker が利用可能である必要があります。

収録されている特集

トピック

よくある質問

slim とは?
SlimToolkit(Slim)は、Dockerfileやワークフローを変更せずに、既存のコンテナイメージを解析・軽量化・強化します。 Slimはコンテナイメージ向けのコマンドラインツールキットです。一時コンテナ内で実行中のアプリケーションを解析し、アプリケーションに必要なファイルだけを残して、より小さなイメージを生成します。READMEによると、多くのインタプリタ型言語のイメージで最大30倍、コンパイル済みのGoイメージではさらに大幅な軽量化が可能です。元のイメージのベースOS、パッケージマネージャー、ビルドプロセスはそのまま維持されます。
slim は無料で使えますか?ライセンスは?
slim は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
slim は今もメンテナンスされていますか?
半年以内に更新あり。slim の最終コミットは 2026年9月19日 です。
slim は何に使えますか?
Node.js、Python、Ruby、Goのサービスで、本番用イメージのサイズを削減する。 自動生成したSeccompプロファイルでシステムコールを制限し、コンテナを強化する。 中身やビルド方法を把握するため、詳細の分からないイメージを調査する。 Docker化されたコマンドラインツールを、小さく単機能なイメージにパッケージ化する。
slim のインストール方法は?
README のリンクから、お使いのプラットフォーム用の zip または tar.gz パッケージをダウンロードします: curl -L -o ds.tar.gz https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_linux.tar.gz パッケージを展開します: tar -xvf ds.tar.gz slim バイナリを bin ディレクトリに移動します: mv dist_linux/slim /usr/local/bin/ README の例を使って slim 版をビルドし、画像を minify します: slim build --target archlinux:latest --tag archlinux:curl --http-probe=false --exec "curl checkip.amazonaws.com"
slim はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/slimtoolkit/slim

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト