| #!/bin/bash |
|
|
| |
| |
|
|
| set -e |
|
|
| IMAGE_NAME="bom-detector" |
| IMAGE_TAG="latest" |
| REGISTRY="${DOCKER_REGISTRY:-docker.io}" |
| DOCKER_USER="${DOCKER_USER:-your-username}" |
|
|
| echo "==========================================" |
| echo "🐳 BOM Pattern Detection — Docker Builder" |
| echo "==========================================" |
| echo "" |
|
|
| |
| echo "[1/4] Building Docker image..." |
| echo "Image: $IMAGE_NAME:$IMAGE_TAG" |
| echo "" |
|
|
| docker build -t "$IMAGE_NAME:$IMAGE_TAG" . |
|
|
| if [ $? -eq 0 ]; then |
| echo "✓ Image built successfully" |
| else |
| echo "✗ Build failed" |
| exit 1 |
| fi |
|
|
| |
| echo "" |
| echo "[2/4] Image info:" |
| docker images "$IMAGE_NAME:$IMAGE_TAG" |
|
|
| |
| echo "" |
| echo "[3/4] Testing container..." |
| echo "Starting container on port 8000..." |
| echo "You can test at: http://localhost:8000" |
| echo "" |
| echo "To stop: Press Ctrl+C" |
| echo "" |
|
|
| docker run --rm -p 8000:7860 "$IMAGE_NAME:$IMAGE_TAG" & |
| PID=$! |
|
|
| sleep 5 |
|
|
| echo "Testing API health endpoint..." |
| if curl -s http://localhost:8000/api/health > /dev/null 2>&1; then |
| echo "✓ Container health check passed" |
| kill $PID 2>/dev/null || true |
| else |
| echo "⚠ Health check failed (may still work, network timeout)" |
| kill $PID 2>/dev/null || true |
| fi |
|
|
| |
| echo "" |
| echo "[4/4] Docker Hub push (optional)" |
| echo "" |
| read -p "Push to Docker Hub? (y/n) " -n 1 -r |
| echo |
| if [[ $REPLY =~ ^[Yy]$ ]]; then |
| echo "Tagging for Docker Hub..." |
| docker tag "$IMAGE_NAME:$IMAGE_TAG" "$REGISTRY/$DOCKER_USER/$IMAGE_NAME:$IMAGE_TAG" |
|
|
| echo "Pushing to $REGISTRY/$DOCKER_USER/$IMAGE_NAME:$IMAGE_TAG..." |
| docker push "$REGISTRY/$DOCKER_USER/$IMAGE_NAME:$IMAGE_TAG" |
|
|
| echo "✓ Pushed successfully" |
| echo "" |
| echo "Now available as:" |
| echo " docker pull $REGISTRY/$DOCKER_USER/$IMAGE_NAME:$IMAGE_TAG" |
| else |
| echo "Skipped push to registry" |
| fi |
|
|
| echo "" |
| echo "==========================================" |
| echo "✓ Docker build complete!" |
| echo "==========================================" |
| echo "" |
| echo "To run locally:" |
| echo " docker run -p 8000:7860 bom-detector:latest" |
| echo "" |
| echo "Then open:" |
| echo " http://localhost:8000" |
| echo "" |
|
|