#!/usr/bin/env bash set -euo pipefail # galaxis-sandbox 이미지 빌드 스크립트 # Usage: ./build-sandbox.sh [--dry-run] SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" DRY_RUN=false if [[ "${1:-}" == "--dry-run" ]]; then DRY_RUN=true fi IMAGE_NAME="galaxis-sandbox:latest" DOCKERFILE="Dockerfile.sandbox" # 색상 RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' info() { echo -e "${GREEN}[INFO]${NC} $*"; } error() { echo -e "${RED}[ERROR]${NC} $*"; } # Docker 설치 확인 if ! command -v docker &>/dev/null; then error "Docker가 설치되어 있지 않습니다." exit 1 fi # Dockerfile.sandbox 존재 확인 if [[ ! -f "$DOCKERFILE" ]]; then error "${DOCKERFILE}이 없습니다." exit 1 fi if [[ "$DRY_RUN" == true ]]; then echo "[DRY-RUN] 실행될 명령:" echo " docker build -f ${DOCKERFILE} -t ${IMAGE_NAME} ." exit 0 fi info "${IMAGE_NAME} 이미지 빌드 중..." docker build -f "$DOCKERFILE" -t "$IMAGE_NAME" . # 이미지 크기 출력 SIZE=$(docker image inspect "$IMAGE_NAME" --format='{{.Size}}' | awk '{printf "%.0f", $1/1024/1024}') info "빌드 완료! 이미지 크기: ${SIZE}MB"