#!/bin/bash # HGZero UI/UX Prototype Docker Image Build Script set -e # 변수 설정 IMAGE_NAME="hgzero-uiux-prototype" IMAGE_TAG="${1:-latest}" REGISTRY="${DOCKER_REGISTRY:-acrdigitalgarage02.azurecr.io}" FULL_IMAGE_NAME="${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}" # 색상 코드 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${GREEN}======================================${NC}" echo -e "${GREEN}HGZero UI/UX Prototype Image Build${NC}" echo -e "${GREEN}======================================${NC}" echo "" # 스크립트 디렉토리 경로 저장 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)" DOCKERFILE_PATH="${SCRIPT_DIR}/Dockerfile" # Dockerfile 확인 if [ ! -f "${DOCKERFILE_PATH}" ]; then echo -e "${RED}Error: Dockerfile not found at ${DOCKERFILE_PATH}${NC}" exit 1 fi # 프로젝트 루트로 이동 cd "${PROJECT_ROOT}" # 프로토타입 파일 확인 if [ ! -d "design/uiux/prototype" ] || [ -z "$(ls -A design/uiux/prototype/*.html 2>/dev/null)" ]; then echo -e "${RED}Error: Prototype HTML files not found in design/uiux/prototype/${NC}" exit 1 fi echo -e "${YELLOW}Building Docker image...${NC}" echo "Image: ${FULL_IMAGE_NAME}" echo "" # Docker 이미지 빌드 docker build \ -t ${IMAGE_NAME}:${IMAGE_TAG} \ -t ${IMAGE_NAME}:latest \ -t ${FULL_IMAGE_NAME} \ -f ${DOCKERFILE_PATH} \ . if [ $? -eq 0 ]; then echo "" echo -e "${GREEN}✓ Build successful!${NC}" echo "" echo "Created images:" echo " - ${IMAGE_NAME}:${IMAGE_TAG}" echo " - ${IMAGE_NAME}:latest" echo " - ${FULL_IMAGE_NAME}" echo "" # 이미지 정보 출력 echo "Image details:" docker images ${IMAGE_NAME}:${IMAGE_TAG} echo "" # Push 옵션 read -p "Push image to registry? (y/N): " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then echo -e "${YELLOW}Pushing image to registry...${NC}" docker push ${FULL_IMAGE_NAME} if [ $? -eq 0 ]; then echo -e "${GREEN}✓ Push successful!${NC}" else echo -e "${RED}✗ Push failed${NC}" exit 1 fi fi echo "" echo -e "${GREEN}Next steps:${NC}" echo "1. Deploy to Kubernetes:" echo " kubectl apply -f k8s" echo "" echo "2. Check deployment status:" echo " kubectl get pods -l app=hgzero-uiux-prototype" else echo "" echo -e "${RED}✗ Build failed${NC}" exit 1 fi