8.2. 最小限からベースイメージをビルドする


以前は、Image Mode for RHEL を使用して標準イメージのみをビルドできました。標準イメージはおおむねヘッドレスのサーバー指向のインストールですが、デスクトップでも使用可能です。また、ネットワーク、CLI ツールなど、多くの独自のパッケージが含まれています。

標準イメージから、bootc、カーネル、dnf のみから始まる新しい最小限のイメージを生成するオプションが追加されました。このイメージは、マルチステージビルドでさらに拡張できます。現時点では、最小限のイメージはレジストリーに事前に組み込まれた状態で出荷されていません。

ベースイメージには、カスタムベースイメージを生成できる /usr/libexec/bootc-base-imagectl ツールが含まれています。このツールを使用すると、ベースイメージで選択した RPM パッケージに基づいたルートファイルシステムを構築できます。

前提条件

  • 標準の bootc ベースイメージ。

手順

  • 次の例では、カスタムの最小ベースイメージを作成します。

    # Begin with a standard bootc base image that is reused as a "builder" for the custom image.
    FROM registry.redhat.io/rhel10/rhel-bootc:latest
    # Configure and override source RPM repositories, if necessary. This step is not required when building up from minimal unless referencing specific content views or target mirrored/snapshotted/pinned versions of content.
    # Add additional repositories to apply customizations to the image. However, referencing a custom manifest in this step is not currently supported without forking the code.
    # Build the root file system by using the specified repositories and non-RPM content from the "builder" base image.
    # If no repositories are defined, the default build will be used. You can modify the scope of packages in the base image by changing the manifest between the "standard" and "minimal" sets.
    RUN dnf repolist && /usr/libexec/bootc-base-imagectl build-rootfs --manifest=minimal /target-rootfs
    # Create a new, empty image from scratch.
    FROM scratch
    # Copy the root file system built in the previous step into this image.
    COPY --from=builder /target-rootfs/ /
    # Apply customizations to the image. This syntax uses "heredocs" https://www.docker.com/blog/introduction-to-heredocs-in-dockerfiles/ to pass multi-line arguments in a more readable format.
    RUN <<EORUN
    # Set pipefail to display failures within the heredoc and avoid false-positive successful builds.
    set -xeuo pipefail
    # Install required packages for our custom bootc image. Note that using a minimal manifest means we need to add critical components specific to our use case and environment.
    dnf -y install NetworkManager cowsay
    # Remove leftover build artifacts from installing packages from the final built image.
    dnf clean all
    rm /var/{log,cache,lib}/* -rf
    # Close the shell command.
    EORUN
    # Define required labels for this bootc image to be recognized as such.
    LABEL containers.bootc 1
    LABEL ostree.bootable 1
    # Optional labels that only apply when running this image as a container. These keep the default entry point running under systemd.
    STOPSIGNAL SIGRTMIN+3
    CMD ["/sbin/init"]
    # Run the bootc linter to avoid encountering certain bugs and maintain content quality. Place this command last in your Containerfile.
    RUN bootc container lint
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る