66# total build time compared to the sequential build-images.sh script.
77#
88# Usage:
9- # ./build-all-images-concurrent.sh [local|gcp] [OPTIONS]
9+ # ./build-all-images-concurrent.sh [local|gcp|azure ] [OPTIONS]
1010#
1111# Environment Target (optional, defaults to 'local'):
1212# local Build for local development (tags as 'latest')
1313# gcp Build and push to GCP registry (increments version)
14+ # azure Build and push to Azure Container Registry (increments version)
1415#
1516# Options:
1617# --all Build all images
4041# # Build and push to GCP registry
4142# ./build-all-images-concurrent.sh gcp --all
4243#
44+ # # Build and push to Azure Container Registry
45+ # ./build-all-images-concurrent.sh azure --all
46+ #
4347# Note: This script requires the same prerequisites as build-images.sh:
4448# - Maven artifacts must be built first (mvn clean install)
4549# - For local builds, Minikube should be running
4650# - For GCP builds, gcloud authentication must be configured
51+ # - For Azure builds, az CLI authentication must be configured
4752#
4853
4954SCRIPT_DIR=$( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd)
@@ -55,14 +60,14 @@ ENV_TARGET="local" # default mode
5560NO_CACHE=false
5661INCLUDE_DEV_CERTS=false
5762
58- # --- Parse the environment target (local | gcp) ---
59- if [[ " $1 " == " local" || " $1 " == " gcp" ]]; then
63+ # --- Parse the environment target (local | gcp | azure ) ---
64+ if [[ " $1 " == " local" || " $1 " == " gcp" || " $1 " == " azure " ]]; then
6065 ENV_TARGET=" $1 "
6166 shift
6267fi
6368
64- # --- Load environment file only for GCP (versions needed for registry) ---
65- if [[ " $ENV_TARGET " == " gcp" ]]; then
69+ # --- Load environment file for GCP or Azure (versions needed for registry) ---
70+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
6671 ENV_FILE=" .$ENV_TARGET .env"
6772 source " $ENV_FILE "
6873 cp " $ENV_FILE " " $ENV_FILE .bak"
@@ -167,6 +172,11 @@ build_image() {
167172 docker tag " $name :$version " " $REGISTRY /$name :$version "
168173 docker push " $REGISTRY /$name :$version "
169174 echo " ✅ Pushed $REGISTRY /$name :$version "
175+ elif [[ " $ENV_TARGET " == " azure" ]]; then
176+ REGISTRY=" ${AZURE_REGISTRY:- sentriusacr.azurecr.io} "
177+ docker tag " $name :$version " " $REGISTRY /$name :$version "
178+ docker push " $REGISTRY /$name :$version "
179+ echo " ✅ Pushed $REGISTRY /$name :$version "
170180 else
171181 echo " ✅ Built locally: $name :$version "
172182 fi
@@ -237,6 +247,11 @@ build_keycloak_image() {
237247 docker tag " $name :$version " " $REGISTRY /$name :$version "
238248 docker push " $REGISTRY /$name :$version "
239249 echo " ✅ Pushed $REGISTRY /$name :$version "
250+ elif [[ " $ENV_TARGET " == " azure" ]]; then
251+ REGISTRY=" ${AZURE_REGISTRY:- sentriusacr.azurecr.io} "
252+ docker tag " $name :$version " " $REGISTRY /$name :$version "
253+ docker push " $REGISTRY /$name :$version "
254+ echo " ✅ Pushed $REGISTRY /$name :$version "
240255 else
241256 echo " ✅ Built locally: $name :$version "
242257 fi
@@ -286,10 +301,15 @@ while [[ "$#" -gt 0 ]]; do
286301 shift
287302done
288303
289- # --- Auth for GCP ---
304+ # --- Auth for GCP or Azure ---
290305if [[ " $ENV_TARGET " == " gcp" ]]; then
291306 echo " Authenticating with Google Cloud..."
292307 gcloud auth configure-docker us-central1-docker.pkg.dev || exit 1
308+ elif [[ " $ENV_TARGET " == " azure" ]]; then
309+ echo " Authenticating with Azure Container Registry..."
310+ REGISTRY=" ${AZURE_REGISTRY:- sentriusacr.azurecr.io} "
311+ REGISTRY_NAME=$( echo " $REGISTRY " | cut -d' .' -f1)
312+ az acr login --name " $REGISTRY_NAME " || exit 1
293313fi
294314
295315# Array to track background job PIDs
@@ -315,7 +335,7 @@ start_build() {
315335# --- Build Steps (Concurrent) ---
316336if $update_sentrius ; then
317337 cp api/target/sentrius-api-* .jar docker/sentrius/sentrius.jar
318- if [[ " $ENV_TARGET " == " gcp" ]]; then
338+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
319339 SENTRIUS_VERSION=$( increment_patch_version $SENTRIUS_VERSION )
320340 update_env_var " SENTRIUS_VERSION" " $SENTRIUS_VERSION "
321341 else
@@ -325,7 +345,7 @@ if $update_sentrius; then
325345fi
326346
327347if $update_sentrius_ssh ; then
328- if [[ " $ENV_TARGET " == " gcp" ]]; then
348+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
329349 SENTRIUS_SSH_VERSION=$( increment_patch_version $SENTRIUS_SSH_VERSION )
330350 update_env_var " SENTRIUS_SSH_VERSION" " $SENTRIUS_SSH_VERSION "
331351 else
@@ -335,7 +355,7 @@ if $update_sentrius_ssh; then
335355fi
336356
337357if $update_sentrius_keycloak ; then
338- if [[ " $ENV_TARGET " == " gcp" ]]; then
358+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
339359 SENTRIUS_KEYCLOAK_VERSION=$( increment_patch_version $SENTRIUS_KEYCLOAK_VERSION )
340360 update_env_var " SENTRIUS_KEYCLOAK_VERSION" " $SENTRIUS_KEYCLOAK_VERSION "
341361 else
346366
347367if $update_sentrius_agent ; then
348368 cp analytics/target/analytics-* .jar docker/sentrius-agent/agent.jar
349- if [[ " $ENV_TARGET " == " gcp" ]]; then
369+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
350370 SENTRIUS_AGENT_VERSION=$( increment_patch_version $SENTRIUS_AGENT_VERSION )
351371 update_env_var " SENTRIUS_AGENT_VERSION" " $SENTRIUS_AGENT_VERSION "
352372 else
357377
358378if $update_sentrius_ai_agent ; then
359379 cp enterprise-agent/target/enterprise-agent-* .jar docker/sentrius-ai-agent/agent.jar
360- if [[ " $ENV_TARGET " == " gcp" ]]; then
380+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
361381 SENTRIUS_AI_AGENT_VERSION=$( increment_patch_version $SENTRIUS_AI_AGENT_VERSION )
362382 update_env_var " SENTRIUS_AI_AGENT_VERSION" " $SENTRIUS_AI_AGENT_VERSION "
363383 else
371391
372392if $update_integrationproxy ; then
373393 cp integration-proxy/target/sentrius-integration-proxy-* .jar docker/integrationproxy/llmproxy.jar
374- if [[ " $ENV_TARGET " == " gcp" ]]; then
394+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
375395 LLMPROXY_VERSION=$( increment_patch_version $LLMPROXY_VERSION )
376396 update_env_var " LLMPROXY_VERSION" " $LLMPROXY_VERSION "
377397 else
382402
383403if $update_launcher ; then
384404 cp agent-launcher/target/agent-launcher-* .jar docker/sentrius-launcher-service/launcher.jar
385- if [[ " $ENV_TARGET " == " gcp" ]]; then
405+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
386406 LAUNCHER_VERSION=$( increment_patch_version $LAUNCHER_VERSION )
387407 update_env_var " LAUNCHER_VERSION" " $LAUNCHER_VERSION "
388408 else
393413
394414if $update_agent_proxy ; then
395415 cp agent-proxy/target/sentrius-agent-proxy-* .jar docker/agent-proxy/agentproxy.jar
396- if [[ " $ENV_TARGET " == " gcp" ]]; then
416+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
397417 AGENTPROXY_VERSION=$( increment_patch_version $AGENTPROXY_VERSION )
398418 update_env_var " AGENTPROXY_VERSION" " $AGENTPROXY_VERSION "
399419 else
404424
405425if $update_ssh_proxy ; then
406426 cp ssh-proxy/target/ssh-proxy-* .jar docker/ssh-proxy/sshproxy.jar
407- if [[ " $ENV_TARGET " == " gcp" ]]; then
427+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
408428 SSHPROXY_VERSION=$( increment_patch_version $SSHPROXY_VERSION )
409429 update_env_var " SSHPROXY_VERSION" " $SSHPROXY_VERSION "
410430 else
415435
416436if $update_rdp_proxy ; then
417437 cp rdp-proxy/target/rdp-proxy-* .jar docker/rdp-proxy/rdpproxy.jar
418- if [[ " $ENV_TARGET " == " gcp" ]]; then
438+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
419439 RDPPROXY_VERSION=$( increment_patch_version $RDPPROXY_VERSION )
420440 update_env_var " RDPPROXY_VERSION" " $RDPPROXY_VERSION "
421441 else
426446
427447if $update_sentrius_monitoring_agent ; then
428448 cp monitoring/target/monitoring-* .jar docker/monitoring/monitoring.jar
429- if [[ " $ENV_TARGET " == " gcp" ]]; then
449+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
430450 MONITORING_AGENT_VERSION=$( increment_patch_version $MONITORING_AGENT_VERSION )
431451 update_env_var " MONITORING_AGENT_VERSION" " $MONITORING_AGENT_VERSION "
432452 else
437457
438458if $update_sentrius_ssh_agent ; then
439459 cp ssh-agent/target/ssh-agent-* .jar docker/ssh-agent/ssh-agent.jar
440- if [[ " $ENV_TARGET " == " gcp" ]]; then
441- $ SSH_AGENT_VERSION =$( increment_patch_version $SSH_AGENT_VERSION )
442- update_env_var " $ SSH_AGENT_VERSION" " $SSH_AGENT_VERSION "
460+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
461+ SSH_AGENT_VERSION=$( increment_patch_version $SSH_AGENT_VERSION )
462+ update_env_var " SSH_AGENT_VERSION" " $SSH_AGENT_VERSION "
443463 else
444464 SSH_AGENT_VERSION=" latest"
445465 fi
446466 start_build " sentrius-ssh-agent" " build_image 'sentrius-ssh-agent' '$SSH_AGENT_VERSION ' '${SCRIPT_DIR} /../../docker/ssh-agent'"
447467fi
448468
449469if $update_github_mcp ; then
450- if [[ " $ENV_TARGET " == " gcp" ]]; then
470+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
451471 GITHUB_MCP_VERSION=$( increment_patch_version $GITHUB_MCP_VERSION )
452472 update_env_var " GITHUB_MCP_VERSION" " $GITHUB_MCP_VERSION "
453473 else
@@ -457,7 +477,7 @@ if $update_github_mcp; then
457477fi
458478
459479if $update_prompt_advisor ; then
460- if [[ " $ENV_TARGET " == " gcp" ]]; then
480+ if [[ " $ENV_TARGET " == " gcp" || " $ENV_TARGET " == " azure " ]]; then
461481 PROMPT_ADVISOR_VERSION=$( increment_patch_version $PROMPT_ADVISOR_VERSION )
462482 update_env_var " PROMPT_ADVISOR_VERSION" " $PROMPT_ADVISOR_VERSION "
463483 else
0 commit comments