This commit is contained in:
parent
4519f062b2
commit
dbbef4fc0e
11
CLAUDE.md
11
CLAUDE.md
@ -13,11 +13,20 @@ This repository contains a Docker-based build system for creating statically-lin
|
|||||||
## Key Commands
|
## Key Commands
|
||||||
|
|
||||||
### Building the Base Image
|
### Building the Base Image
|
||||||
|
|
||||||
|
For local testing (single architecture):
|
||||||
```bash
|
```bash
|
||||||
cd build-base
|
cd build-base
|
||||||
./build.sh
|
./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
|
### Building a Project
|
||||||
```bash
|
```bash
|
||||||
|
@ -7,10 +7,20 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|||||||
# Create buildx builder if it doesn't exist
|
# Create buildx builder if it doesn't exist
|
||||||
docker buildx create --name multiarch --use 2>/dev/null || docker buildx use multiarch
|
docker buildx create --name multiarch --use 2>/dev/null || docker buildx use multiarch
|
||||||
|
|
||||||
# Build multi-platform image locally (store in builder cache)
|
# Detect if we're building for testing or publishing
|
||||||
|
if [ "${BUILD_MODE:-test}" = "multiarch" ]; then
|
||||||
|
# Build multi-platform image (for publishing)
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--platform linux/amd64,linux/arm64 \
|
--platform linux/amd64,linux/arm64 \
|
||||||
-t "gitea.jde.nz/public/dropshell-build-base:latest" \
|
-t "gitea.jde.nz/public/dropshell-build-base:latest" \
|
||||||
-f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \
|
-f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \
|
||||||
${SCRIPT_DIR}
|
${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
|
||||||
|
|
@ -16,7 +16,7 @@ die() {
|
|||||||
# Publish gitea.jde.nz/public/dropshell-build-base:latest
|
# Publish gitea.jde.nz/public/dropshell-build-base:latest
|
||||||
docker login -u "anything" -p "${DOCKER_PUSH_TOKEN}" gitea.jde.nz
|
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 \
|
docker buildx build \
|
||||||
--platform linux/amd64,linux/arm64 \
|
--platform linux/amd64,linux/arm64 \
|
||||||
-t "gitea.jde.nz/public/dropshell-build-base:latest" \
|
-t "gitea.jde.nz/public/dropshell-build-base:latest" \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user