2.2. bootc イメージの取得または構築
既存の bootc イメージを取得するか、新しいイメージを作成して、そのイメージをリモートレジストリーに公開して使用できます。
2.2.1. MicroShift の公開された bootc イメージの取得 リンクのコピーリンクがクリップボードにコピーされました!
MicroShift コンテナーイメージを使用して、Image Mode for RHEL をインストールできます。
前提条件
- x86_64 または AArch64 プラットフォームがある。
-
registry.redhat.ioレジストリーにアクセスできる。
手順
- Red Hat Ecosystem Catalog に移動します。
-
microshift-bootcキーワードを使用して、MicroShift コンテナーイメージを検索します。 - MicroShift コンテナーイメージのコンテナーイメージページを開きます。
-
イメージの詳細は、
OverviewタブとTechnical Informationタブを参照してください。 -
Get this imageタブを選択して、イメージのダウンロード手順を表示します。 次のコマンドを使用してレジストリーにログインして、x86_64 および AArch64 プラットフォームの最新イメージにアクセスします。
$ sudo podman login registry.redhat.io次のコマンドを実行して、bootc イメージをダウンロードします。
$ podman pull registry.redhat.io/openshift4/microshift-bootc-rhel9:v4.19
2.2.2. bootc イメージのビルド リンクのコピーリンクがクリップボードにコピーされました!
Containerfile を使用して、MicroShift を含む Red Hat Enterprise Linux (RHEL) を起動可能なコンテナーイメージとして構築します。
前提条件
- MicroShift bootc イメージを構築し、コンテナーを実行するための、アクティブな Red Hat サブスクリプションを備えた RHEL 9.6 ホストがある。
-
sudoパーミッションを持つユーザー認証情報を使用して RHEL 9.6 ホストにログインしている。 -
rhocpおよびfast-datapathリポジトリーは、ホストサブスクリプションでアクセスできる。リポジトリーは必ずしもホスト上で有効にする必要はありません。 - bootc イメージを保存およびアクセスするための Red Hat Quay などのリモートレジストリーがある。
-
dnf install -y container-toolsコマンドを使用して、ホストにcontainer-toolsメタパッケージをインストールしている。メタパッケージには、追加のサポートとトラブルシューティングのための Podman、Buildah、Skopeo などのすべてのコンテナーツールが含まれています。これらのツールは、イメージを構築およびインストールする際に Red Hat Support チームから支援を受ける場合に必要です。
手順
以下の命令を含む Containerfile を作成します。
RHEL Image Mode の Containerfile の例
FROM registry.redhat.io/rhel9/rhel-bootc:9.6 ARG USHIFT_VER=4.19 RUN dnf config-manager \ --set-enabled rhocp-${USHIFT_VER}-for-rhel-9-$(uname -m)-rpms \ --set-enabled fast-datapath-for-rhel-9-$(uname -m)-rpms RUN dnf install -y firewalld microshift && \ systemctl enable microshift && \ dnf clean all # Create a default 'redhat' user with the specified password. # Add it to the 'wheel' group to allow for running sudo commands. ARG USER_PASSWD RUN if [ -z "${USER_PASSWD}" ] ; then \ echo USER_PASSWD is a mandatory build argument && exit 1 ; \ fi RUN useradd -m -d /var/home/redhat -G wheel redhat && \ echo "redhat:${USER_PASSWD}" | chpasswd # Mandatory firewall configuration RUN firewall-offline-cmd --zone=public --add-port=22/tcp && \ firewall-offline-cmd --zone=trusted --add-source=10.42.0.0/16 && \ firewall-offline-cmd --zone=trusted --add-source=169.254.169.1 # Create a systemd unit to recursively make the root filesystem subtree # shared as required by OVN images RUN cat > /etc/systemd/system/microshift-make-rshared.service <<'EOF' [Unit] Description=Make root filesystem shared Before=microshift.service ConditionVirtualization=container [Service] Type=oneshot ExecStart=/usr/bin/mount --make-rshared / [Install] WantedBy=multi-user.target EOF RUN systemctl enable microshift-make-rshared.service
Podman は、コンテナーイメージをビルドするときに、コンテナー内のホストのサブスクリプション情報とリポジトリーを使用します。rhocp および fast-datapath リポジトリーがホスト上で利用できないと、ビルドは失敗します。
PULL_SECRET環境変数を設定します。$ PULL_SECRET=~/.pull-secret.jsonUSER_PASSWD環境変数を設定します。$ USER_PASSWD=<redhat_user_password>1 - 1
- <redhat_user_password> は、実際のパスワードに置き換えます。
IMAGE_NAME環境変数を設定します。$ IMAGE_NAME=microshift-4.19-bootc次のイメージビルドコマンドを実行して、ローカル bootc イメージを作成します。
$ sudo podman build --authfile "${PULL_SECRET}" -t "${IMAGE_NAME}" \ --build-arg USER_PASSWD="${USER_PASSWD}" \ -f Containerfile重要イメージビルド中にシークレットが使用される方法
-
registry.redhat.ioレジストリーからベースrhel-bootc:9.6イメージをプルするには、podman--authfile引数が必要です。 -
ビルド
USER_PASSWD引数は、redhatユーザーのパスワードを設定するために使用されます。
-
検証
次のコマンドを実行して、ローカルの MicroShift ブートイメージが作成されたことを確認します。
$ sudo podman images "${IMAGE_NAME}"出力例
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/microshift-4.19-bootc latest 193425283c00 2 minutes ago 2.31 GB