#!/usr/bin/env bash set -euo pipefail # 帮助信息 show_help() { cat << EOF ARGUS Log System - Image Build Tool Usage: $0 [OPTIONS] Options: --intranet Use intranet mirror for Ubuntu 22.04 packages -h, --help Show this help message Examples: $0 # Build with default sources $0 --intranet # Build with intranet mirror EOF } # 解析命令行参数 use_intranet=false while [[ $# -gt 0 ]]; do case $1 in --intranet) use_intranet=true shift ;; -h|--help) show_help exit 0 ;; *) echo "Unknown option: $1" show_help exit 1 ;; esac done root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$root" echo "=======================================" echo "ARGUS Log System - Image Build Tool" echo "=======================================" if [[ "$use_intranet" == true ]]; then echo "🌐 Mode: Intranet (Using internal mirror: 10.68.64.1)" build_args="--build-arg USE_INTRANET=true" else echo "🌐 Mode: Public (Using default package sources)" build_args="" fi echo "" # 构建 Elasticsearch 镜像 echo "🔄 Building Elasticsearch image..." if docker build $build_args -t argus-elasticsearch:latest ./elasticsearch/build; then echo "✅ Elasticsearch image built successfully" else echo "❌ Failed to build Elasticsearch image" exit 1 fi echo "" # 构建 Kibana 镜像 echo "🔄 Building Kibana image..." if docker build $build_args -t argus-kibana:latest ./kibana/build; then echo "✅ Kibana image built successfully" else echo "❌ Failed to build Kibana image" exit 1 fi echo "" echo "=======================================" echo "📦 Build Summary" echo "=======================================" echo "✅ Successfully built images:" echo " • argus-elasticsearch:latest" echo " • argus-kibana:latest" if [[ "$use_intranet" == true ]]; then echo "" echo "🌐 Built with intranet mirror configuration" fi echo "" echo "🚀 Next steps:" echo " ./scripts/save_images.sh # Export images" echo " ./scripts/02_up.sh # Start services" echo ""