Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
melange — Wolfi/Alpine向けの宣言的パイプラインを使用して、ソースコードを監査可能かつ署名済みのAPKパッケージにコンパイルし、マルチアーキテクチャのQEMUエミュレーションと再現可能なビルドを実現します。 | Kitploit
ツール/GitHubGitHub/chainguard-dev/melange
DevSecOpsユーティリティとフレームワークサプライチェーンセキュリティ
GitHubchainguard-dev/melange

melange

Wolfi/Alpine向けの宣言的パイプラインを使用して、ソースコードを監査可能かつ署名済みのAPKパッケージにコンパイルし、マルチアーキテクチャのQEMUエミュレーションと再現可能なビルドを実現します。

リポジトリを見る
6231743日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

melange

宣言的パイプラインを使用して apk パッケージをビルドします。

apko でビルドされたコンテナイメージにカスタムパッケージを提供するためによく使用されます。大多数の apk は、Wolfi または Alpine Linux エコシステムのいずれかで使用するためにビルドされます。

主な特徴:

  • パイプライン指向のビルド。 ビルドパイプラインのすべてのステップは、従来のパッケージマネージャーが持つような明確なフェーズとは異なり、ユーザーが定義して制御します。
  • デフォルトでマルチアーキテクチャ対応。 QEMU を使用してさまざまなアーキテクチャをエミュレートするため、クロスコンパイルの手順が不要です。

なぜ必要か

セキュアソフトウェアファクトリーは DevOps の進化形であり、ユーザーはソフトウェアアプライアンスに組み込まれるすべてのアーティファクトの来歴(provenance)を証明できます。ソフトウェアアーティファクトをビルドしてパッケージに取り込むことで、DevOps チームはソフトウェアアーティファクトをイメージの他のコンポーネントと同じように管理できます。

これは、apko を使って OCI コンテナイメージの形でソフトウェアアプライアンスをビルドする場合に特に役立ちます。

インストール

Homebrew から Melange をインストールできます:

root@kitploit:~
brew install melange

ソースから Melange をインストールすることもできます:

root@kitploit:~
go install chainguard.dev/melange@latest

Melange のコンテナイメージを使用することもできます:

root@kitploit:~
docker run cgr.dev/chainguard/melange version

例を使用するには、通常は現在のディレクトリをコンテナにマウントし、昇格した特権を提供する必要があります。例:

root@kitploit:~
docker run --privileged -v "$PWD":/work cgr.dev/chainguard/melange build examples/gnu-hello.yaml

コンテナの外で実行するには Docker が必要ですが、podman などの他のランタイムでも動作するはずです。

クイックスタート

melange ビルドファイルは次のようになります:

root@kitploit:~
package:
  name: hello
  version: 2.12
  epoch: 0
  description: "the GNU hello world program"
  copyright:
    - attestation: |
        Copyright 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2005,
        2006, 2007, 2008, 2010, 2011, 2013, 2014, 2022 Free Software Foundation,
        Inc.
      license: GPL-3.0-or-later
  dependencies:
    runtime:

environment:
  contents:
    repositories:
      - https://dl-cdn.alpinelinux.org/alpine/edge/main
    packages:
      - alpine-baselayout-data
      - busybox
      - build-base
      - scanelf
      - ssl_client
      - ca-certificates-bundle

pipeline:
  - uses: fetch
    with:
      uri: https://ftp.gnu.org/gnu/hello/hello-${{package.version}}.tar.gz
      expected-sha256: cf04af86dc085268c5f4470fbae49b18afbc221b78096aab842d934a76bad0ab
  - uses: autoconf/configure
  - uses: autoconf/make
  - uses: autoconf/make-install
  - uses: strip

subpackages:
  - name: "hello-doc"
    description: "Documentation for hello"
    dependencies:
      runtime:
        - foo
    pipeline:
      - uses: split/manpages
    test:
      pipeline:
        - uses: test/docs

test:
  environment:
    contents:
      packages:
        - bar
  pipeline:
    - runs: |
        hello
        hello --version

これは次のようにビルドできます:

root@kitploit:~
melange build examples/gnu-hello.yaml

または、Docker を使用する場合:

root@kitploit:~
docker run --privileged --rm -v "${PWD}":/work \
  cgr.dev/chainguard/melange build examples/gnu-hello.yaml

これにより packages フォルダーが作成され、パッケージがサポートするアーキテクチャごとにエントリが作成されます。現在のアーキテクチャのみをビルドしたい場合は、ビルドコマンドに --arch $(uname -m) を追加できます。アーキテクチャディレクトリ内に、パイプラインでビルドされた各パッケージの apk ファイルがあります。

apk に署名したい場合は、melange keygen コマンドで署名鍵を作成します:

root@kitploit:~
melange keygen
root@kitploit:~
 generating keypair with a 4096 bit prime, please wait...
 wrote private key to melange.rsa
 wrote public key to melange.rsa.pub

次に、--signing-key 引数を melange build に渡します。

melange ビルドのデバッグ

melange ビルドにデバッグレベルの情報を含めるには、melange.yaml ファイルを編集し、パイプラインに set -x を含めます。このフラグは、ビルドの特定のセクションをさらにデバッグするために、パイプラインコマンドの任意の時点で追加できます。

root@kitploit:~
...
pipeline:
  - name: Build Minicli application
    runs: |
      set -x
      APP_HOME="${{targets.destdir}}/usr/share/hello-minicli"
...

デフォルトの置換

Melange は、ビルドファイルのパイプラインで参照できる次のデフォルトの置換を提供します:

置換を使用したビルドファイルパイプラインの例:

root@kitploit:~
pipeline:
  - name: 'Create tmp dir'
    runs: mkdir ${{targets.destdir}}/var/lib/${{package.name}}/tmp

より詳細なドキュメント

apko での使用法

melange でビルドした apk を apko で使用するには、パッケージリポジトリにアップロードするか、「ローカル」リポジトリを使用します。ローカルリポジトリを使用すると、外部ストレージを使用せずに、melange ビルドと apko ビルドを同じディレクトリ(または GitHub リポジトリ)で実行できます。 このアプローチの例は、nginx-image-demo リポジトリ で確認できます。

ツールをダウンロード
SubstitutionDescription
${{package.name}}パッケージ名
${{package.version}}パッケージバージョン
${{package.epoch}}パッケージエポック
${{package.full-version}}${{package.version}}-r${{package.epoch}}
${{package.description}}パッケージの説明
${{package.srcdir}}パッケージのソースディレクトリ (--source-dir)
${{subpkg.name}}サブパッケージ名
${{context.name}}メインパッケージまたはサブパッケージ名
${{targets.outdir}}ターゲットが保存されるディレクトリ
${{targets.contextdir}}メインパッケージとサブパッケージのターゲットが保存されるディレクトリ
${{targets.destdir}}メインのターゲットが保存されるディレクトリ
${{targets.subpkgdir}}サブパッケージのターゲットが保存されるディレクトリ
${{build.arch}}現在のビルドのアーキテクチャ (例: x86_64, aarch64)
${{build.goarch}}現在のビルドの GOARCH (例: amd64, arm64)