#!/bin/bash APP=$1 VERSION=$2 if [ -z "$APP" ]; then echo "Please provide an app name as an argument." echo "Usage: $0 " exit 1 fi # Check if version is provided if [ -z "$VERSION" ]; then echo "Please provide a version number as an argument." echo "Usage: $0 $APP " exit 1 fi # Ensure Docker Buildx is available and set up a builder docker buildx create --use --name multi-arch-builder || true # Function to build a multi-architecture image build_image() { local app=$1 local image_name="lindesvard/openpanel-$app" echo "Building multi-architecture image for $image_name:$VERSION" docker buildx build \ --platform linux/amd64,linux/arm64 \ -t "$image_name:$VERSION" \ -t "$image_name:latest" \ --build-arg DATABASE_URL="postgresql://p@p:5432/p" \ -f "apps/$app/Dockerfile" \ --push \ . if [ $? -ne 0 ]; then echo "Failed to build $image_name:$VERSION" exit 1 fi echo "Successfully built and pushed multi-architecture image for $image_name:$VERSION" } if [ "$APP" == "all" ]; then build_image "dashboard" build_image "worker" build_image "api" echo "All multi-architecture images have been built and pushed successfully." else build_image $APP echo "Multi-architecture image for $APP has been built and pushed successfully." fi