From 177373317e164f99155ba1d038b60eb8c1dac94d Mon Sep 17 00:00:00 2001 From: Eshan Roy Date: Sat, 30 Nov 2024 18:09:45 +0530 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20perf(=5Fblank):=20used=20f?= =?UTF-8?q?or=20cache=20optimization?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 52 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index d4d6845..65d6ab7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,44 @@ +# Stage 1: Build the root filesystem FROM archlinux:base-devel AS rootfs -RUN pacman -Syu --noconfirm && \ - pacman -S --needed --noconfirm pacman-contrib git openssh sudo curl -COPY pacman.conf /etc/pacman.conf -RUN curl https://raw.githubusercontent.com/Snigdha-OS/snigdhaos-pkgbuilds/refs/heads/master/snigdhaos-mirrorlist/snigdhaos-mirrorlist -o /etc/pacman.d/snigdhaos-mirrorlist +# Update system and install base packages +RUN pacman -Syu --noconfirm && \ + pacman -S --needed --noconfirm pacman-contrib git openssh sudo curl +# Add custom pacman configuration +COPY pacman.conf /etc/pacman.conf -## include to pacman own keyring to install signed packages -RUN pacman-key --init && \ - pacman-key --recv-keys E1415F19F21171F2 --keyserver keyserver.ubuntu.com && \ - pacman-key --lsign-key E1415F19F21171F2 && \ - pacman -Sy && \ - pacman -S --needed --noconfirm snigdhaos-keyring snigdhaos-mirrorlist && \ - pacman -Syu --noconfirm && \ - rm -rf /var/lib/pacman/sync/* && \ - find /var/cache/pacman/ -type f -delete +# Download and configure the Snigdha OS mirrorlist +RUN curl -fsSL https://raw.githubusercontent.com/Snigdha-OS/snigdhaos-pkgbuilds/refs/heads/master/snigdhaos-mirrorlist/snigdhaos-mirrorlist \ + -o /etc/pacman.d/snigdhaos-mirrorlist +# Initialize pacman keyring and trust Snigdha OS signing key +RUN pacman-key --init && \ + pacman-key --recv-keys E1415F19F21171F2 --keyserver keyserver.ubuntu.com && \ + pacman-key --lsign-key E1415F19F21171F2 + +# Install Snigdha OS-specific packages and keyring +RUN pacman -Sy && \ + pacman -S --needed --noconfirm snigdhaos-keyring snigdhaos-mirrorlist && \ + pacman -Syu --noconfirm + +# Clean up cache and temporary files to reduce image size +RUN rm -rf /var/lib/pacman/sync/* && \ + find /var/cache/pacman/ -type f -delete && \ + pacman -Sc --noconfirm + +# Stage 2: Create the final minimal container FROM scratch -LABEL org.opencontainers.image.description="Snigdha OS - Arch based Linux Distribution for Penetration Testing and Ethical Hacking" + +# Metadata about the container +LABEL org.opencontainers.image.title="Snigdha OS Container" \ + org.opencontainers.image.description="Snigdha OS - Arch-based Linux distribution for Penetration Testing and Ethical Hacking" \ + org.opencontainers.image.version="1.0" \ + org.opencontainers.image.authors="Snigdha OS Team" \ + org.opencontainers.image.licenses="MIT" + +# Copy the prepared root filesystem COPY --from=rootfs / / -CMD ["/usr/bin/bash"] \ No newline at end of file + +# Default command +CMD ["/usr/bin/bash"]