streamflow/publish-docker.sh

68 lines
1.7 KiB
Bash
Executable file

#!/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 ""