#!/bin/bash # Build room Docker images # # Usage: # ./build.sh # Build all # ./build.sh # Build specific service # ./build.sh --no-cache # Force rebuild # # This is a TEMPLATE. Copy to your room's ctrl/ and customize. set -e cd "$(dirname "$0")/.." NO_CACHE="" TARGET="all" SERVICE_DIRS=() for dir in */; do [ -f "$dir/docker-compose.yml" ] && SERVICE_DIRS+=("${dir%/}") done for arg in "$@"; do case $arg in --no-cache) NO_CACHE="--no-cache" ;; *) [[ " ${SERVICE_DIRS[*]} " =~ " ${arg} " ]] && TARGET="$arg" ;; esac done build_service() { local svc=$1 echo "Building $svc..." (cd "$svc" && docker compose build $NO_CACHE) } if [ "$TARGET" = "all" ]; then for svc in "${SERVICE_DIRS[@]}"; do build_service "$svc" done else build_service "$TARGET" fi echo "Done."