#!/bin/bash # StreamFlow Docker Hub Publishing Script # This script builds and pushes the Docker image to Docker Hub set -e # Exit on error # Configuration DOCKER_USERNAME="aiulian25" IMAGE_NAME="streamflow" VERSION="${1:-latest}" # Use argument or default to 'latest' echo "=========================================" echo " StreamFlow Docker Hub Publisher" echo "=========================================" echo "" echo "Username: $DOCKER_USERNAME" echo "Image: $IMAGE_NAME" echo "Version: $VERSION" echo "" # Check if Docker is running if ! docker info > /dev/null 2>&1; then echo "❌ Error: Docker is not running" exit 1 fi # Check if logged in to Docker Hub if ! docker info | grep -q "Username"; then echo "⚠️ Not logged in to Docker Hub" echo "Please run: docker login" exit 1 fi echo "📦 Building Docker image..." echo "" # Build the image docker build -t "${DOCKER_USERNAME}/${IMAGE_NAME}:${VERSION}" . # If version is not 'latest', also tag as latest if [ "$VERSION" != "latest" ]; then echo "" echo "🏷️ Tagging as latest..." docker tag "${DOCKER_USERNAME}/${IMAGE_NAME}:${VERSION}" "${DOCKER_USERNAME}/${IMAGE_NAME}:latest" fi echo "" echo "⬆️ Pushing to Docker Hub..." echo "" # Push the version tag docker push "${DOCKER_USERNAME}/${IMAGE_NAME}:${VERSION}" # Push latest tag if we created it if [ "$VERSION" != "latest" ]; then docker push "${DOCKER_USERNAME}/${IMAGE_NAME}:latest" fi echo "" echo "✅ Successfully published!" echo "" echo "📍 Image URL: https://hub.docker.com/r/${DOCKER_USERNAME}/${IMAGE_NAME}" echo "🐳 Pull command: docker pull ${DOCKER_USERNAME}/${IMAGE_NAME}:${VERSION}" echo "" echo "Users can now run:" echo " docker compose up -d" echo ""