Initialisation depot
This commit is contained in:
75
RdpBroker/web-gateway/build-multiarch.sh
Executable file
75
RdpBroker/web-gateway/build-multiarch.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
# Build multi-architecture Docker image for web-gateway
|
||||
# Supports: amd64 (x86_64) and arm64 (Raspberry Pi 4, Apple Silicon)
|
||||
|
||||
set -e
|
||||
|
||||
# Configuration
|
||||
IMAGE_NAME="${IMAGE_NAME:-easylinux/web-gateway}"
|
||||
IMAGE_TAG="${IMAGE_TAG:-latest}"
|
||||
PLATFORMS="${PLATFORMS:-linux/amd64,linux/arm64}"
|
||||
|
||||
echo "============================================"
|
||||
echo "Building Multi-Arch Docker Image"
|
||||
echo "============================================"
|
||||
echo "Image: ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
echo "Platforms: ${PLATFORMS}"
|
||||
echo "============================================"
|
||||
|
||||
# Check if buildx is available
|
||||
if ! docker buildx version >/dev/null 2>&1; then
|
||||
echo "Error: docker buildx not found. Please install Docker Buildx."
|
||||
echo "See: https://docs.docker.com/buildx/working-with-buildx/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create builder instance if it doesn't exist
|
||||
if ! docker buildx ls | grep -q multiarch-builder; then
|
||||
echo "Creating multiarch-builder..."
|
||||
docker buildx create --name multiarch-builder --use --bootstrap
|
||||
else
|
||||
echo "Using existing multiarch-builder..."
|
||||
docker buildx use multiarch-builder
|
||||
fi
|
||||
|
||||
# Build and push multi-arch image
|
||||
echo "Building for platforms: ${PLATFORMS}..."
|
||||
|
||||
# Check if PUSH is set to true
|
||||
if [ "${PUSH}" = "true" ]; then
|
||||
echo "Building and pushing to registry..."
|
||||
docker buildx build \
|
||||
--platform "${PLATFORMS}" \
|
||||
--tag "${IMAGE_NAME}:${IMAGE_TAG}" \
|
||||
--push \
|
||||
.
|
||||
|
||||
echo "============================================"
|
||||
echo "✅ Multi-arch image built and pushed!"
|
||||
echo "============================================"
|
||||
echo "Image: ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
echo ""
|
||||
echo "Verify architectures:"
|
||||
echo " docker buildx imagetools inspect ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
else
|
||||
# For multi-arch, save to local registry cache
|
||||
echo "Building locally (use PUSH=true to push to registry)..."
|
||||
docker buildx build \
|
||||
--platform "${PLATFORMS}" \
|
||||
--tag "${IMAGE_NAME}:${IMAGE_TAG}" \
|
||||
.
|
||||
|
||||
echo "============================================"
|
||||
echo "✅ Multi-arch image built successfully!"
|
||||
echo "============================================"
|
||||
echo "Image: ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
echo ""
|
||||
echo "Note: Multi-arch images are in buildx cache."
|
||||
echo "To push to registry:"
|
||||
echo " PUSH=true ./build-multiarch.sh"
|
||||
echo ""
|
||||
echo "To load single arch locally:"
|
||||
echo " docker buildx build --platform linux/amd64 -t ${IMAGE_NAME}:${IMAGE_TAG} --load ."
|
||||
echo " or"
|
||||
echo " docker buildx build --platform linux/arm64 -t ${IMAGE_NAME}:${IMAGE_TAG} --load ."
|
||||
fi
|
||||
Reference in New Issue
Block a user