2.4.2. 이미지 모드를 사용하여 에지 이미지의 RHEL 10 이상 빌드
에지 컴퓨팅 환경을 위한 RHEL 10 이미지에서 에지 이미지에 대한 부팅 가능한 컨테이너 RHEL을 빌드, 배포 및 관리하려면 이미지 모드를 사용합니다.
참고
bootc-image-builder 를 사용하여 특정 이미지 유형을 생성할 수 없습니다. 모든 RHEL 이미지 빌더 유형이 RHEL의 이미지 모드에서 사용 가능한 것은 아니기 때문입니다. 특히 simplified-installer 는 더 이상 존재하지 않습니다. 대신 bootc-image-builder Anaconda ISO를 사용합니다.
사전 요구 사항
- Podman이 호스트 머신에 설치되어 있습니다.
-
--privileged모드에서 컨테이너를 실행하는 root 액세스.
프로세스
컨테이너
파일을생성합니다. 예를 들면 다음과 같습니다.$ 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<
image>를 빌드합니다. 현재 디렉터리에서Containerfile을 사용합니다.$ 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