From 8e986c7b8b716ff2e3dee3bc50ab624bb00a45b6 Mon Sep 17 00:00:00 2001 From: fithwum Date: Sun, 6 Jul 2025 08:54:33 -0700 Subject: [PATCH] test --- .gitea/workflows/base-build.yml | 1 + base-image-script/alpine-base_pt1.sh | 18 +++++++++--------- base-image-script/alpine-base_pt3.sh | 26 ++++++-------------------- 3 files changed, 16 insertions(+), 29 deletions(-) diff --git a/.gitea/workflows/base-build.yml b/.gitea/workflows/base-build.yml index 8ff06d8..718c147 100644 --- a/.gitea/workflows/base-build.yml +++ b/.gitea/workflows/base-build.yml @@ -23,6 +23,7 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 + - name: Build custom Alpine builder image run: | docker build -t alpine-builder:latest . diff --git a/base-image-script/alpine-base_pt1.sh b/base-image-script/alpine-base_pt1.sh index 283eca2..7a9cd3a 100644 --- a/base-image-script/alpine-base_pt1.sh +++ b/base-image-script/alpine-base_pt1.sh @@ -5,7 +5,7 @@ set -e # Alpine version ALPINE_VERSION="v3.20" -ROOTFS_DIR="alpine-rootfs" +BUILD_DIR="/mnt/alpine-rootfs" # <--- use safe path NOT in bind mount OUTPUT_TAR="alpine-base.tar.gz" PACKAGES="bash curl ca-certificates nano" @@ -20,19 +20,19 @@ sudo ./alpine-make-rootfs \ --branch "$ALPINE_VERSION" \ --mirror http://dl-cdn.alpinelinux.org/alpine \ --packages "$PACKAGES" \ - "$ROOTFS_DIR" + "$BUILD_DIR" echo "[INFO] Binding system directories for chroot..." -sudo mount --bind /dev "$ROOTFS_DIR/dev" -sudo mount --bind /proc "$ROOTFS_DIR/proc" -sudo mount --bind /sys "$ROOTFS_DIR/sys" +sudo mount --bind /dev "$BUILD_DIR/dev" +sudo mount --bind /proc "$BUILD_DIR/proc" +sudo mount --bind /sys "$BUILD_DIR/sys" echo "[INFO] Copying part 2 script into chroot..." -sudo cp base-image-script/alpine-base_pt2.sh "$ROOTFS_DIR/alpine-base_pt2.sh" -sudo chmod +x "$ROOTFS_DIR/alpine-base_pt2.sh" +sudo cp base-image-script/alpine-base_pt2.sh "$BUILD_DIR/alpine-base_pt2.sh" +sudo chmod +x "$BUILD_DIR/alpine-base_pt2.sh" echo "[INFO] Entering chroot. Run 'exit' when done." -sudo chroot "$ROOTFS_DIR" /alpine-base_pt2.sh +sudo chroot "$BUILD_DIR" /alpine-base_pt2.sh echo "[INFO] Continuing with packaging after chroot..." -bash base-image-script/alpine-base_pt3.sh "$ROOTFS_DIR" "$OUTPUT_TAR" +bash base-image-script/alpine-base_pt3.sh "$BUILD_DIR" "$OUTPUT_TAR" diff --git a/base-image-script/alpine-base_pt3.sh b/base-image-script/alpine-base_pt3.sh index 319cb11..44d2c05 100644 --- a/base-image-script/alpine-base_pt3.sh +++ b/base-image-script/alpine-base_pt3.sh @@ -3,35 +3,21 @@ # All rights reserved set -e -# Auto-detect rootfs dir if not passed as arg -if [ -n "$1" ]; then - ROOTFS_DIR="$1" -else - ROOTFS_DIR=$(find . -maxdepth 1 -type d -name "alpine-rootfs" | sed 's|^\./||' | head -n 1) - if [ -z "$ROOTFS_DIR" ]; then - echo "[ERROR] No alpine-rootfs directory found!" - exit 1 - fi -fi - -# Define output tarball location (adjust as needed) -TARBALL="/output/${ROOTFS_DIR}.tar.gz" +ROOTFS_DIR="${1:-/mnt/alpine-rootfs}" +TARBALL="/workspace/output/alpine-base.tar.gz" # <-- store output in workspace for CI echo "[INFO] Unmounting system directories (ignore errors)..." for dir in dev proc sys; do sudo umount -lf "$ROOTFS_DIR/$dir" 2>/dev/null || true done -echo "[INFO] Removing chroot script if exists..." -sudo rm -f "$ROOTFS_DIR/alpine-base_pt2.sh" 2>/dev/null || true +echo "[INFO] Cleaning up chroot script..." +sudo rm -f "$ROOTFS_DIR/alpine-base_pt2.sh" echo "[INFO] Rootfs size:" du -sh "$ROOTFS_DIR" -echo "[INFO] Creating compressed base image tarball..." +echo "[INFO] Creating tarball: $TARBALL" sudo tar -czf "$TARBALL" -C "$ROOTFS_DIR" . -echo "[INFO] Tarball size:" -du -sh "$TARBALL" - -echo "[INFO] Tarball ready for CI to upload: $TARBALL" +echo "[INFO] Tarball ready for CI: $TARBALL" \ No newline at end of file