aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris White <chwhite@redhat.com>2023-12-04 20:34:16 +0000
committerJohn Kacur <jkacur@redhat.com>2024-01-23 15:34:26 -0500
commit8a44457cba88c9fb2901dd112b7a039da1419992 (patch)
treea7a754d35acabcc0a29b3b08ed1914fe0025f17d
parent64ce7848dfabd2056d35c8a60f3354db45e36286 (diff)
downloadrteval-8a44457cba88c9fb2901dd112b7a039da1419992.tar.gz
rteval: Add interactive source-to-image Dockerfile
This Dockerfile sets up a base image for rteval, copies the code, and installs it, providing an interactive container for testing rteval directly. Signed-off-by: Chris White <chwhite@redhat.com> Signed-off-by: John Kacur <jkacur@redhat.com>
-rw-r--r--.dockerignore1
-rw-r--r--Dockerfile69
2 files changed, 70 insertions, 0 deletions
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..2d2ecd6
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+.git/
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..45f6434
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,69 @@
+# 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"]