From 10abfbdddcb56a703bdd35baec5b8ac13e2b2fe1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Ara=C3=BAjo?= <davidaraujo@av.it.pt>
Date: Wed, 11 Oct 2023 23:10:15 +0100
Subject: [PATCH] docker buildx verification

---
 deploy/tfs.sh | 28 +++++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)
 mode change 100755 => 100644 deploy/tfs.sh

diff --git a/deploy/tfs.sh b/deploy/tfs.sh
old mode 100755
new mode 100644
index 95d882c8b..2e5baec07
--- a/deploy/tfs.sh
+++ b/deploy/tfs.sh
@@ -184,32 +184,46 @@ kubectl create secret generic redis-secrets --namespace=$TFS_K8S_NAMESPACE \
     --from-literal=REDIS_PASSWORD=$REDIS_PASSWORD
 echo "export REDIS_PASSWORD=${REDIS_PASSWORD}" >> $ENV_VARS_SCRIPT
 
+DOCKER_BUILD="docker build"
+DOCKER_MAJOR_VERSION=$(docker --version | grep -o -E "[ ][0-9]+[.]" | cut -c 1-3)
+if [[ $DOCKER_MAJOR_VERSION -ge 23 ]]; then
+    DOCKER_BUILDX_VERSION=$(docker buildx version)
+    if [[ $? -ne 0 ]]; then
+        echo "Docker buildx command is not installed. Check: https://docs.docker.com/build/architecture/#install-buildx"
+        exit 0;
+    fi
+    DOCKER_BUILD="docker buildx build"
+fi
+echo ${DOCKER_BUILD}
+
 for COMPONENT in $TFS_COMPONENTS; do
     echo "Processing '$COMPONENT' component..."
 
+    
+
     if [ "$TFS_SKIP_BUILD" != "YES" ]; then
         echo "  Building Docker image..."
         BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}.log"
 
         if [ "$COMPONENT" == "automation" ] || [ "$COMPONENT" == "policy" ]; then
-            docker build -t "$COMPONENT:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG"
+            $DOCKER_BUILD -t "$COMPONENT:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG"
         elif [ "$COMPONENT" == "pathcomp" ]; then
             BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-frontend.log"
-            docker build -t "$COMPONENT-frontend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/frontend/Dockerfile . > "$BUILD_LOG"
+            $DOCKER_BUILD -t "$COMPONENT-frontend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/frontend/Dockerfile . > "$BUILD_LOG"
 
             BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-backend.log"
-            docker build -t "$COMPONENT-backend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/backend/Dockerfile . > "$BUILD_LOG"
+            $DOCKER_BUILD -t "$COMPONENT-backend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/backend/Dockerfile . > "$BUILD_LOG"
             # next command is redundant, but helpful to keep cache updated between rebuilds
             IMAGE_NAME="$COMPONENT-backend:$TFS_IMAGE_TAG-builder"
-            docker build -t "$IMAGE_NAME" --target builder -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG"
+            $DOCKER_BUILD -t "$IMAGE_NAME" --target builder -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG"
         elif [ "$COMPONENT" == "dlt" ]; then
             BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-connector.log"
-            docker build -t "$COMPONENT-connector:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/connector/Dockerfile . > "$BUILD_LOG"
+            $DOCKER_BUILD -t "$COMPONENT-connector:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/connector/Dockerfile . > "$BUILD_LOG"
 
             BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-gateway.log"
-            docker build -t "$COMPONENT-gateway:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/gateway/Dockerfile . > "$BUILD_LOG"
+            $DOCKER_BUILD -t "$COMPONENT-gateway:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/gateway/Dockerfile . > "$BUILD_LOG"
         else
-            docker build -t "$COMPONENT:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/Dockerfile . > "$BUILD_LOG"
+            $DOCKER_BUILD -t "$COMPONENT:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/Dockerfile . > "$BUILD_LOG"
         fi
 
         echo "  Pushing Docker image to '$TFS_REGISTRY_IMAGES'..."
-- 
GitLab