Ajout batch
This commit is contained in:
@@ -34,20 +34,42 @@ 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 "Test on different platforms:"
|
||||
echo " amd64 (x86_64): docker run --rm ${IMAGE_NAME}:${IMAGE_TAG} node --version"
|
||||
echo " arm64 (RPi 4): docker run --rm ${IMAGE_NAME}:${IMAGE_TAG} node --version"
|
||||
echo "Note: Multi-arch images are in buildx cache."
|
||||
echo "To push to registry:"
|
||||
echo " PUSH=true ./build-multiarch.sh"
|
||||
echo ""
|
||||
echo "Verify architectures:"
|
||||
echo " docker buildx imagetools inspect ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
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
|
||||
|
||||
73
web-gateway/transfer-to-rpi.sh
Executable file
73
web-gateway/transfer-to-rpi.sh
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/bin/bash
|
||||
# Transfer Docker image to Raspberry Pi and load into K3s
|
||||
|
||||
set -e
|
||||
|
||||
IMAGE_NAME="${IMAGE_NAME:-easylinux/web-gateway}"
|
||||
IMAGE_TAG="${IMAGE_TAG:-latest}"
|
||||
RPI_HOST="${RPI_HOST:-}"
|
||||
RPI_USER="${RPI_USER:-pi}"
|
||||
|
||||
if [ -z "$RPI_HOST" ]; then
|
||||
echo "Error: RPI_HOST not set"
|
||||
echo "Usage: RPI_HOST=192.168.1.100 ./transfer-to-rpi.sh"
|
||||
echo " or: RPI_HOST=rpi4.local RPI_USER=myuser ./transfer-to-rpi.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "============================================"
|
||||
echo "Transfer Docker Image to Raspberry Pi"
|
||||
echo "============================================"
|
||||
echo "Image: ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
echo "Target: ${RPI_USER}@${RPI_HOST}"
|
||||
echo "============================================"
|
||||
|
||||
# Step 1: Build ARM64 image locally
|
||||
echo "Step 1/4: Building ARM64 image..."
|
||||
docker buildx build \
|
||||
--platform linux/arm64 \
|
||||
--tag "${IMAGE_NAME}:${IMAGE_TAG}" \
|
||||
--load \
|
||||
.
|
||||
|
||||
# Step 2: Save image to tar.gz
|
||||
echo "Step 2/4: Saving image to tar.gz..."
|
||||
docker save "${IMAGE_NAME}:${IMAGE_TAG}" | gzip > /tmp/web-gateway-arm64.tar.gz
|
||||
echo "Saved to /tmp/web-gateway-arm64.tar.gz ($(du -h /tmp/web-gateway-arm64.tar.gz | cut -f1))"
|
||||
|
||||
# Step 3: Transfer to Raspberry Pi
|
||||
echo "Step 3/4: Transferring to ${RPI_USER}@${RPI_HOST}..."
|
||||
scp /tmp/web-gateway-arm64.tar.gz "${RPI_USER}@${RPI_HOST}:/tmp/"
|
||||
|
||||
# Step 4: Load image on Raspberry Pi
|
||||
echo "Step 4/4: Loading image into K3s..."
|
||||
ssh "${RPI_USER}@${RPI_HOST}" << EOF
|
||||
echo "Loading image into Docker/K3s..."
|
||||
gunzip -c /tmp/web-gateway-arm64.tar.gz | sudo k3s ctr images import -
|
||||
|
||||
# Alternative if using docker instead of containerd:
|
||||
# gunzip -c /tmp/web-gateway-arm64.tar.gz | docker load
|
||||
|
||||
echo "Cleaning up..."
|
||||
rm /tmp/web-gateway-arm64.tar.gz
|
||||
|
||||
echo "Verifying image..."
|
||||
sudo k3s ctr images ls | grep web-gateway || echo "Image not found!"
|
||||
EOF
|
||||
|
||||
# Cleanup local file
|
||||
rm /tmp/web-gateway-arm64.tar.gz
|
||||
|
||||
echo "============================================"
|
||||
echo "✅ Image transferred successfully!"
|
||||
echo "============================================"
|
||||
echo "Image is now available on ${RPI_HOST}"
|
||||
echo ""
|
||||
echo "Deploy with Helm:"
|
||||
echo " helm install rdp-web-gateway ./chart/rdp-web-gateway \\"
|
||||
echo " --namespace rdpbroker \\"
|
||||
echo " --create-namespace \\"
|
||||
echo " --set image.repository=${IMAGE_NAME} \\"
|
||||
echo " --set image.tag=${IMAGE_TAG} \\"
|
||||
echo " --set image.pullPolicy=IfNotPresent \\"
|
||||
echo " -f chart/rdp-web-gateway/examples/rpi4-k3s.yaml"
|
||||
Reference in New Issue
Block a user