68 lines
1.7 KiB
Bash
Executable file
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 ""
|