cat Containerfile
FROM registry.redhat.io/rhel9/rhel-bootc:9.6
# Packages
RUN dnf install -y zsh && dnf clean all
# Group install
RUN dnf group -y install "Development Tools"
# Hostname
RUN echo "rock.paper.scissor" > /etc/hostname
# 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
RUN dnf install subscription-manager
# RPM config
RUN mkdir -p /etc/pki/rpm-gpg/
COPY <host_path>/gpg_key /etc/pki/rpm-gpg/gpg_key
# Timezones
RUN cat <<EOF >> /etc/localtime
Asia/Bangkok
EOF
# Locale
RUN cat <<EOF >> /etc/locale.conf
LANG="en_US.UTF-8"
EOF && \
cat <<EOF >> /etc/vconsole.conf
cat <<EOF >> /etc/vconsole.conf
KEYMAP=us
EOF
firewall
RUN dnf install -y firewalld && \
mkdir -p /etc/firewalld/zones
mkdir -p /etc/firewalld/zones
RUN cat <<EOF >> /etc/firewalld/zones/customzone.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Customzone</short>
<description>Custom firewall rules for the container.</description>
<!-- Allowed services -->
<service name="ftp"/>
<service name="ntp"/>
<service name="dhcp"/>
<!-- Blocked services (not explicitly listed) -->
<!-- Removing telnet explicitly is unnecessary if it is not included -->
<!-- Open specific ports -->
<port protocol="tcp" port="22"/>
<port protocol="tcp" port="80"/>
<port protocol="tcp" port="53"/>
<port protocol="udp" port="53"/>
<port protocol="tcp" port="30000-32767"/>
<port protocol="udp" port="30000-32767"/>
</zone>
EOF
RUN firewall-offline-cmd --set-default-zone=customzone
systemd services
RUN systemctl enable sshd
#ignition
RUN mkdir -p /usr/lib/bootc/kargs.d && \
cat <<EOF >> /usr/lib/bootc/kargs.d/console.toml
cat <<EOF >> /usr/lib/bootc/kargs.d/console.toml
kargs = ["ignition.config.url=http://192.168.122.1/fiot.ign","rd.neednet=1"]
EOF
#fdo
RUN dnf install -y fdo-init fdo-client && \
systemctl enable fdo-client-linuxapp.service
systemctl enable fdo-client-linuxapp.service
#Repositories
RUN mkdir -p /etc/yum.repos.d
COPY custom.repo /etc/yum.repos.d/custom.repo
#fips
RUN mkdir -p /usr/lib/bootc/kargs.d && \
cat <<EOF >> /usr/lib/bootc/kargs.d/01-fips.toml
cat <<EOF >> /usr/lib/bootc/kargs.d/01-fips.toml
kargs = ["fips=1"]
EOF
RUN dnf install -y crypto-policies-scripts && update-crypto-policies --no-reload --set FIPS
$ cat Containerfile
FROM registry.redhat.io/rhel9/rhel-bootc:9.6
# Packages
RUN dnf install -y zsh && dnf clean all
# Group install
RUN dnf group -y install "Development Tools"
# Hostname
RUN echo "rock.paper.scissor" > /etc/hostname
# 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
RUN dnf install subscription-manager
# RPM config
RUN mkdir -p /etc/pki/rpm-gpg/
COPY <host_path>/gpg_key /etc/pki/rpm-gpg/gpg_key
# Timezones
RUN cat <<EOF >> /etc/localtime
Asia/Bangkok
EOF
# 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 && \
mkdir -p /etc/firewalld/zones
RUN cat <<EOF >> /etc/firewalld/zones/customzone.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Customzone</short>
<description>Custom firewall rules for the container.</description>
<!-- Allowed services -->
<service name="ftp"/>
<service name="ntp"/>
<service name="dhcp"/>
<!-- Blocked services (not explicitly listed) -->
<!-- Removing telnet explicitly is unnecessary if it is not included -->
<!-- Open specific ports -->
<port protocol="tcp" port="22"/>
<port protocol="tcp" port="80"/>
<port protocol="tcp" port="53"/>
<port protocol="udp" port="53"/>
<port protocol="tcp" port="30000-32767"/>
<port protocol="udp" port="30000-32767"/>
</zone>
EOF
RUN firewall-offline-cmd --set-default-zone=customzone
# systemd services
RUN systemctl enable sshd
#ignition
RUN mkdir -p /usr/lib/bootc/kargs.d && \
cat <<EOF >> /usr/lib/bootc/kargs.d/console.toml
kargs = ["ignition.config.url=http://192.168.122.1/fiot.ign","rd.neednet=1"]
EOF
#fdo
RUN dnf install -y fdo-init fdo-client && \
systemctl enable fdo-client-linuxapp.service
#Repositories
RUN mkdir -p /etc/yum.repos.d
COPY custom.repo /etc/yum.repos.d/custom.repo
#fips
RUN mkdir -p /usr/lib/bootc/kargs.d && \
cat <<EOF >> /usr/lib/bootc/kargs.d/01-fips.toml
kargs = ["fips=1"]
EOF
RUN dnf install -y crypto-policies-scripts && update-crypto-policies --no-reload --set FIPS
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow