From 7b02a20942e4fd25377682cf89d2d05d9cb038fc Mon Sep 17 00:00:00 2001 From: Diego Navarro <12802120+mrchucu1@users.noreply.github.com> Date: Mon, 28 Jul 2025 18:49:59 -0600 Subject: [PATCH] Updated Dockerfile Security Dockerfile: - Add SHA256 verification for base image - Pin package versions and clean apt cache - Add checksum verification for Zig download --- Dockerfile | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6d39977..31eb83b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,26 @@ -FROM ubuntu:22.04 - +FROM ubuntu@sha256:1ec65b2719518e27d4d25f104d93f9fac60dc437f81452302406825c46fcc9cb ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get install -y --no-install-recommends \ - curl \ - ca-certificates \ - gcc \ - libc6-dev \ - tar \ - xz-utils \ - && rm -rf /var/lib/apt/lists/* +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + curl \ + ca-certificates \ + gcc \ + libc6-dev \ + tar \ + xz-utils \ + && rm -rf /var/lib/apt/lists/* \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* -RUN curl -fLO "https://ziglang.org/builds/zig-x86_64-linux-0.15.0-dev.1084+dbe0e0c1b.tar.xz" -RUN tar -xJf "zig-x86_64-linux-0.15.0-dev.1084+dbe0e0c1b.tar.xz" -RUN mv zig-x86_64-linux-0.15.0-dev.1084+dbe0e0c1b/zig zig-x86_64-linux-0.15.0-dev.1084+dbe0e0c1b/lib/ /usr/bin/ -RUN rm -rf "zig-x86_64-linux-0.15.0-dev.1084+dbe0e0c1b.tar.xz" "zig-x86_64-linux-0.15.0-dev.1084+dbe0e0c1b" +# Security best practice: Add checksum verification for Zig download +ARG ZIG_URL="https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz" +ARG ZIG_SHA256="24aeeec8af16c381934a6cd7d95c807a8cb2cf7df9fa40d359aa884195c4716c" +RUN curl -fLO "${ZIG_URL}" && \ + echo "${ZIG_SHA256} $(basename ${ZIG_URL})" | sha256sum -c - && \ + tar -xJf "$(basename ${ZIG_URL})" && \ + mv zig-*/* /usr/bin/ && \ + rm -rf zig-* "$(basename ${ZIG_URL})" ENV RUSTUP_HOME=/usr/local/rustup \ CARGO_HOME=/usr/local/cargo \ @@ -25,4 +31,4 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --de COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh -ENTRYPOINT ["/entrypoint.sh"] +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file