#!/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 # Function to push a multi-architecture image push_image() { local app=$1 local image_name="lindesvard/openpanel-$app" echo "Pushing multi-architecture image for $image_name:$VERSION" # Push the versioned tag docker buildx imagetools create -t "$image_name:$VERSION" "$image_name:$VERSION" # Push the latest tag docker buildx imagetools create -t "$image_name:latest" "$image_name:$VERSION" if [ $? -ne 0 ]; then echo "Failed to push $image_name:$VERSION" exit 1 fi echo "Successfully pushed multi-architecture image for $image_name:$VERSION and latest" } # Push each image if [ "$APP" == "all" ]; then push_image "dashboard" push_image "worker" push_image "api" echo "All multi-architecture images have been pushed successfully." else push_image $APP echo "Multi-architecture image for $APP has been pushed successfully." fi