CyberSecChatbot / build-and-push-gpu.sh
Andrew McCracken
Add GPU support
bfa102d
#!/bin/bash
set -e
# Configuration
DOCKER_USERNAME="techdaskalos"
IMAGE_NAME="cybersecchatbot"
VERSION="${1:-gpu}"
FULL_IMAGE="$DOCKER_USERNAME/$IMAGE_NAME:$VERSION"
echo "πŸ—οΈ Building GPU Docker image: $FULL_IMAGE"
echo "================================"
# Build the image for GPU
docker buildx build --platform linux/amd64 -f Dockerfile.base.gpu -t "$FULL_IMAGE" .
echo ""
echo "βœ… Build complete!"
echo ""
echo "πŸ§ͺ Testing the image locally (requires NVIDIA GPU)..."
echo " Run: docker run --gpus all -p 8000:8000 $FULL_IMAGE"
echo " Then visit: http://localhost:8000/test"
echo ""
read -p "Would you like to test locally before pushing? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Starting local test server with GPU support..."
echo "Press Ctrl+C to stop when done testing"
docker run --gpus all -p 8000:8000 "$FULL_IMAGE"
fi
echo ""
read -p "Push to Docker Hub? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "πŸ“€ Pushing to Docker Hub..."
# Check if logged in
if ! docker info | grep -q "Username: $DOCKER_USERNAME"; then
echo "Please login to Docker Hub:"
docker login
fi
docker push "$FULL_IMAGE"
echo ""
echo "βœ… Successfully pushed: $FULL_IMAGE"
echo ""
echo "πŸ“ Next steps:"
echo " 1. Update your HF Space Dockerfile to:"
echo " FROM $FULL_IMAGE"
echo ""
echo " 2. Update HF Space to use GPU hardware"
echo ""
echo " 3. Commit and push to HF Spaces:"
echo " cp Dockerfile.gpu Dockerfile"
echo " git add Dockerfile"
echo " git commit -m \"Switch to GPU-enabled image: $FULL_IMAGE\""
echo " git push"
echo ""
echo " Your HF Space will deploy with GPU acceleration!"
else
echo "Skipped push. Image is ready locally as: $FULL_IMAGE"
fi