enrich the setup. setup fixes. minimize the consolidation plan
This commit is contained in:
71
devops/docker/build-all-services.sh
Normal file
71
devops/docker/build-all-services.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env bash
|
||||
# Build all services from services-matrix.env one at a time.
|
||||
# Usage: ./devops/docker/build-all-services.sh [start_from]
|
||||
# start_from: 1-based index to resume from (default: 1)
|
||||
set -uo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
MATRIX="$SCRIPT_DIR/services-matrix.env"
|
||||
START_FROM=${1:-1}
|
||||
TAG="${IMAGE_TAG:-dev}"
|
||||
|
||||
cd "$REPO_ROOT"
|
||||
|
||||
# Parse services from matrix
|
||||
mapfile -t SERVICES < <(grep -v '^#' "$MATRIX" | grep -v '^$')
|
||||
TOTAL=${#SERVICES[@]}
|
||||
|
||||
echo "============================================="
|
||||
echo " Building $TOTAL services (tag: $TAG)"
|
||||
echo " Starting from: $START_FROM"
|
||||
echo "============================================="
|
||||
echo ""
|
||||
|
||||
FAILED=()
|
||||
BUILT=0
|
||||
SKIPPED=0
|
||||
|
||||
for i in "${!SERVICES[@]}"; do
|
||||
IDX=$((i + 1))
|
||||
if [[ $IDX -lt $START_FROM ]]; then
|
||||
((SKIPPED++))
|
||||
continue
|
||||
fi
|
||||
|
||||
IFS='|' read -r SERVICE DOCKERFILE PROJECT BINARY PORT <<< "${SERVICES[$i]}"
|
||||
|
||||
echo "[$IDX/$TOTAL] Building $SERVICE..."
|
||||
echo " Project: $PROJECT"
|
||||
echo " Binary: $BINARY"
|
||||
echo " Dockerfile: $DOCKERFILE"
|
||||
|
||||
BUILD_LOG=$(mktemp)
|
||||
if docker build \
|
||||
-f "$DOCKERFILE" \
|
||||
--build-arg APP_PROJECT="$PROJECT" \
|
||||
--build-arg APP_BINARY="$BINARY" \
|
||||
--build-arg APP_PORT="$PORT" \
|
||||
-t "stellaops/$SERVICE:$TAG" \
|
||||
. > "$BUILD_LOG" 2>&1; then
|
||||
echo " OK: stellaops/$SERVICE:$TAG"
|
||||
((BUILT++))
|
||||
else
|
||||
echo " FAILED: $SERVICE"
|
||||
echo " Last 10 lines of build log:"
|
||||
tail -10 "$BUILD_LOG" | sed 's/^/ /'
|
||||
FAILED+=("$SERVICE")
|
||||
fi
|
||||
rm -f "$BUILD_LOG"
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "============================================="
|
||||
echo " Build complete"
|
||||
echo " Built: $BUILT"
|
||||
echo " Skipped: $SKIPPED"
|
||||
echo " Failed: ${#FAILED[@]}"
|
||||
if [[ ${#FAILED[@]} -gt 0 ]]; then
|
||||
echo " Failed services: ${FAILED[*]}"
|
||||
fi
|
||||
echo "============================================="
|
||||
Reference in New Issue
Block a user