#!/bin/bash # Dừng script ngay lập tức nếu có lỗi xảy ra set -e # Cấu hình thông tin USERNAME="victorphan03" IMAGE_NAME="teedy-custom" REGISTRY="ghcr.io" echo "-------------------------------------------------------" echo " Teedy Custom Build & Push System" echo "-------------------------------------------------------" # Yêu cầu nhập Version (Tag) read -p "Nhập phiên bản mới (ví dụ: v1.0.5): " VERSION if [ -z "$VERSION" ]; then echo "Lỗi: Phiên bản không được để trống!" exit 1 fi FULL_IMAGE_NAME="${REGISTRY}/${USERNAME}/${IMAGE_NAME}:${VERSION}" echo "" echo ">>> [1/3] Đang tiến hành Build Docker Image: ${IMAGE_NAME}:${VERSION}..." echo "Lưu ý: Quá trình này có thể mất vài phút vì cần biên dịch Maven & Grunt." # Thực hiện build (Dùng BuildKit để nhanh hơn) DOCKER_BUILDKIT=1 docker build -t "${IMAGE_NAME}:${VERSION}" . echo "" echo ">>> [2/3] Đang gắn thẻ (Tag) cho GitHub Container Registry..." docker tag "${IMAGE_NAME}:${VERSION}" "${FULL_IMAGE_NAME}" echo "" echo ">>> [3/3] Đang đẩy (Push) Image lên GHCR..." docker push "${FULL_IMAGE_NAME}" echo "-------------------------------------------------------" echo " HOÀN THÀNH THÀNH CÔNG!" echo " Image của bạn đã sẵn sàng tại: ${FULL_IMAGE_NAME}" echo "-------------------------------------------------------" echo "Để cập nhật server, hãy sửa file docker-compose-ghcr.yml và chạy:" echo "docker-compose pull && docker-compose up -d" echo "-------------------------------------------------------"