2.4.2. イメージモードを使用して Edge イメージ用の RHEL 10 以降を構築する
RHEL 10 以降では、bootc は RHEL for Edge インストールを作成するための主要ツールです。RHEL Image Builder は従来のエッジアーティファクトをサポートしなくなったため、エッジコンピューティング環境向けの起動可能なコンテナーイメージをビルド、デプロイ、管理するには、イメージモードを使用する必要があります。
利用可能なすべての RHEL Image Builder アーティファクトが Image Mode for RHEL で使用できるわけではありません。つまり、bootc-image-builder を使用して特定のイメージタイプを作成できません。
特に、simplified-installer はもう存在しません。代わりに、FDO などのワークフローには bootc-image-builder Anaconda ISO を使用します。
前提条件
- ホストマシンに Podman がインストールされている。
-
bootc-image-builderツールを実行し、コンテナーを--privilegedモードで実行して、イメージをビルドするための root アクセスがある。
手順
Containerfileを作成します。次の例には、例として使用できるいくつかのカスタマイズが含まれており、要件に合わない場合は削除できます。$ cat Containerfile FROM registry.redhat.io/rhel10/rhel-bootc:10.0 # Packages RUN dnf install -y zsh && dnf clean all # Group install RUN dnf group -y install "Development Tools" # Kernel RUN mkdir -p /usr/lib/bootc/kargs.d RUN cat <<EOF >> /usr/lib/bootc/kargs.d/console.toml kargs = ["console=ttyS0,114800n8","kernel-debug"] match-architectures = ["x86_64"] EOF # Subscription-manager COPY ./rhsm.conf /etc/rhsm/rhsm.conf # RPM config RUN mkdir -p /etc/pki/rpm-gpg/ COPY <host_path>/gpg_key /etc/pki/rpm-gpg//gpg_key # Additional groups RUN groupadd -g 1001 widget # Timezones RUN ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime # Locale RUN cat <<EOF >> /etc/locale.conf LANG="en_US.UTF-8" EOF && \ cat <<EOF >> /etc/vconsole.conf KEYMAP=us EOF # firewall RUN dnf install -y firewalld && \ dnf clean all && \ firewall-offline-cmd --new-zone=customzone && \ firewall-offline-cmd --zone=customzone --set-description="Custom firewall rules for the container" && \ firewall-offline-cmd --zone=customzone --add-service=ftp && \ firewall-offline-cmd --zone=customzone --add-service=ntp && \ firewall-offline-cmd --zone=customzone --add-service=dhcp && \ firewall-offline-cmd --zone=customzone --add-port=22/tcp && \ firewall-offline-cmd --zone=customzone --add-port=80/tcp && \ firewall-offline-cmd --zone=customzone --add-port=53/tcp && \ firewall-offline-cmd --zone=customzone --add-port=53/udp && \ firewall-offline-cmd --zone=customzone --add-port=30000-32767/tcp && \ firewall-offline-cmd --zone=customzone --add-port=30000-32767/udp && \ firewall-offline-cmd --set-default-zone=customzone # systemd services RUN systemctl enable httpd sshd && \ systemctl disable telnetd && \ systemctl mask rcpbind現在のディレクトリーの
Containerfileを使用して、<image>イメージをビルドします。$ podman build -t quay.io/<namespace>/<image>:<tag> .
検証
すべてのイメージをリスト表示します。
$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> latest b28cd00741b3 About a minute ago 2.1 GB