- Create build-image.sh for dedicated Docker image building - Remove Docker build logic from build.sh to focus on Node.js app only - Add comprehensive instructions for running and pushing Docker images - Improve build script modularity and separation of concerns
63 lines
2.2 KiB
Bash
Executable File
63 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# JMESPath Testing Tool - Docker Image Build Script
|
|
|
|
set -e
|
|
|
|
echo "🐳 JMESPath Testing Tool - Docker Image Build"
|
|
echo "=============================================="
|
|
echo ""
|
|
|
|
# Check if Docker is available
|
|
if ! command -v docker &> /dev/null; then
|
|
echo "❌ Docker not found. Please install Docker to build container images."
|
|
exit 1
|
|
fi
|
|
|
|
# Determine version information for Docker build
|
|
VERSION=$(git tag --points-at HEAD 2>/dev/null | sed 's/^v//' | head -n 1)
|
|
|
|
if [ -n "$VERSION" ]; then
|
|
# We're at a tagged commit - release build
|
|
echo "📦 Building release version: $VERSION"
|
|
docker build \
|
|
--build-arg VERSION="$VERSION" \
|
|
--build-arg IS_RELEASE="true" \
|
|
-t skoszewski/jmespath-playground:$VERSION \
|
|
-t skoszewski/jmespath-playground:latest .
|
|
echo "✅ Built Docker images: skoszewski/jmespath-playground:$VERSION, skoszewski/jmespath-playground:latest"
|
|
|
|
echo ""
|
|
echo "To run the release container:"
|
|
echo " docker run -p 3000:3000 skoszewski/jmespath-playground:$VERSION"
|
|
echo " docker run -p 3000:3000 skoszewski/jmespath-playground:latest"
|
|
|
|
echo ""
|
|
echo "To push to Docker Hub:"
|
|
echo " docker push skoszewski/jmespath-playground:$VERSION"
|
|
echo " docker push skoszewski/jmespath-playground:latest"
|
|
else
|
|
# Development build
|
|
PACKAGE_VERSION=$(grep '"version"' package.json | cut -d'"' -f4)
|
|
DEV_VERSION="${PACKAGE_VERSION}-dev"
|
|
echo "📦 Building development version: $DEV_VERSION"
|
|
docker build \
|
|
--build-arg VERSION="$DEV_VERSION" \
|
|
--build-arg IS_RELEASE="false" \
|
|
-t skoszewski/jmespath-playground:dev \
|
|
-t skoszewski/jmespath-playground:latest .
|
|
echo "✅ Built Docker images: skoszewski/jmespath-playground:dev, skoszewski/jmespath-playground:latest"
|
|
|
|
echo ""
|
|
echo "To run the development container:"
|
|
echo " docker run -p 3000:3000 skoszewski/jmespath-playground:dev"
|
|
echo " docker run -p 3000:3000 skoszewski/jmespath-playground:latest"
|
|
|
|
echo ""
|
|
echo "To push to Docker Hub:"
|
|
echo " docker push skoszewski/jmespath-playground:dev"
|
|
echo " docker push skoszewski/jmespath-playground:latest"
|
|
fi
|
|
|
|
echo ""
|
|
echo "🎉 Docker image build completed successfully!" |