Duy
docs: add Docker deployment guide and build scripts
586eb09
Raw
History Blame Contribute Delete
2.25 kB
#!/bin/bash
# BOM Pattern Detection — Docker Build Script
# Build, test, and optionally push to Docker Hub
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 ""
# Step 1: Build image
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
# Step 2: Show image info
echo ""
echo "[2/4] Image info:"
docker images "$IMAGE_NAME:$IMAGE_TAG"
# Step 3: Test run
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
# Step 4: Optional push to registry
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 ""