| # Use CentOS Stream 9 as base image |
| FROM centos:stream9 |
| |
| ARG KERNEL_VERSION=linux-6.6.1.tar.xz |
| |
| |
| # Copy current directory to /opt/rteval/ |
| COPY . /opt/rteval/ |
| |
| # Install everything in one layer to shrink the image size |
| # 1: Install needed dependencies and pull kernel source |
| # 2: install rteval and fix bad symlink |
| # 3: Remove uneeded packages and shrink the image |
| RUN dnf -y update && \ |
| dnf install -y \ |
| python3-devel \ |
| python3-lxml \ |
| python3-libxml2 \ |
| python3-dmidecode \ |
| python3-requests \ |
| realtime-tests \ |
| sysstat \ |
| xz \ |
| bzip2 \ |
| tar \ |
| gzip \ |
| m4 \ |
| make \ |
| gawk \ |
| kernel-headers \ |
| sos \ |
| numactl \ |
| gcc \ |
| binutils \ |
| gcc-c++ \ |
| flex \ |
| bison \ |
| bc \ |
| elfutils \ |
| elfutils-libelf-devel \ |
| openssl \ |
| openssl-devel \ |
| stress-ng \ |
| perl-interpreter \ |
| perl-devel \ |
| perl-generators \ |
| libmpc \ |
| libmpc-devel \ |
| dwarves \ |
| wget \ |
| procps-ng && \ |
| cd /opt/rteval && \ |
| wget -P loadsource https://www.kernel.org/pub/linux/kernel/v6.x/${KERNEL_VERSION} && \ |
| make install && \ |
| make clean && \ |
| rm -f /usr/local/bin/rteval && \ |
| ln -s /opt/rteval/rteval-cmd /usr/bin/rteval && \ |
| dnf remove -y \ |
| gcc-c++ \ |
| python3-devel \ |
| perl-devel && \ |
| dnf clean all |
| |
| |
| # Set the working directory to /root |
| WORKDIR /root |
| |
| # Set the entrypoint to a shell |
| ENTRYPOINT ["/bin/bash"] |