diff mbox series

rteval: Add interactive source-to-image Dockerfile

Message ID 20231204203416.16713-1-chwhite@redhat.com
State New
Headers show
Series rteval: Add interactive source-to-image Dockerfile | expand

Commit Message

Chris White Dec. 4, 2023, 8:34 p.m. UTC
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>
---
 .dockerignore |  1 +
 Dockerfile    | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 70 insertions(+)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile

Comments

John Kacur Jan. 23, 2024, 8:35 p.m. UTC | #1
On Mon, 4 Dec 2023, Chris White wrote:

> 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>
> ---
>  .dockerignore |  1 +
>  Dockerfile    | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 70 insertions(+)
>  create mode 100644 .dockerignore
>  create mode 100644 Dockerfile
> 
> 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"]
> -- 

Signed-off-by: John Kacur <jkacur@redhat.com>
diff mbox series

Patch

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"]