|
|
#!/bin/bash |
|
|
set -e |
|
|
|
|
|
|
|
|
DOCKER_USERNAME="techdaskalos" |
|
|
IMAGE_NAME="cybersecchatbot" |
|
|
VERSION="${1:-gpu}" |
|
|
FULL_IMAGE="$DOCKER_USERNAME/$IMAGE_NAME:$VERSION" |
|
|
|
|
|
echo "ποΈ Building GPU Docker image: $FULL_IMAGE" |
|
|
echo "================================" |
|
|
|
|
|
|
|
|
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..." |
|
|
|
|
|
|
|
|
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 |
|
|
|