From dbbef4fc0e3f9b2d869637ef697a30c020faf7de Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 12 Jun 2025 21:29:00 +1200 Subject: [PATCH] Tidy --- CLAUDE.md | 11 ++++++++++- build-base/build.sh | 22 ++++++++++++++++------ publish.sh | 2 +- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 111bbd3..5e38672 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -13,11 +13,20 @@ This repository contains a Docker-based build system for creating statically-lin ## Key Commands ### Building the Base Image + +For local testing (single architecture): ```bash cd build-base ./build.sh ``` -This creates the `gitea.jde.nz/public/dropshell-build-base:latest` Docker image with all dependencies. +This creates the `gitea.jde.nz/public/dropshell-build-base:latest` Docker image for your current architecture and loads it into Docker. + +For multiarch build (without loading): +```bash +cd build-base +BUILD_MODE=multiarch ./build.sh +``` +This builds for linux/amd64 and linux/arm64 but keeps the image in the buildx cache only. ### Building a Project ```bash diff --git a/build-base/build.sh b/build-base/build.sh index c22c6f6..6876c24 100755 --- a/build-base/build.sh +++ b/build-base/build.sh @@ -7,10 +7,20 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" # Create buildx builder if it doesn't exist docker buildx create --name multiarch --use 2>/dev/null || docker buildx use multiarch -# Build multi-platform image locally (store in builder cache) -docker buildx build \ - --platform linux/amd64,linux/arm64 \ - -t "gitea.jde.nz/public/dropshell-build-base:latest" \ - -f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \ - ${SCRIPT_DIR} +# Detect if we're building for testing or publishing +if [ "${BUILD_MODE:-test}" = "multiarch" ]; then + # Build multi-platform image (for publishing) + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t "gitea.jde.nz/public/dropshell-build-base:latest" \ + -f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \ + ${SCRIPT_DIR} +else + # Build single-platform image for current architecture and load it + docker buildx build \ + --load \ + -t "gitea.jde.nz/public/dropshell-build-base:latest" \ + -f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \ + ${SCRIPT_DIR} +fi \ No newline at end of file diff --git a/publish.sh b/publish.sh index 6407619..38bae62 100755 --- a/publish.sh +++ b/publish.sh @@ -16,7 +16,7 @@ die() { # Publish gitea.jde.nz/public/dropshell-build-base:latest docker login -u "anything" -p "${DOCKER_PUSH_TOKEN}" gitea.jde.nz -# Push the multi-platform image that was built by build-base/build.sh +# Build and push the multi-platform image docker buildx build \ --platform linux/amd64,linux/arm64 \ -t "gitea.jde.nz/public/dropshell-build-base:latest" \