Web-App Container optimizer via LLMs with Enhanced Web Search Capabilities
ContainerShip now combines local Docker documentation with real-time web search to provide the most current Docker optimization recommendations, security updates, and best practices.
- Real-time Docker Information: Access current best practices, security vulnerabilities, and optimization techniques
- Multi-source Search: DuckDuckGo (no API key) + optional Tavily API for enhanced results
- Intelligent Synthesis: Combines local documentation with current web research
- Current vulnerability scanning and threat intelligence
- Up-to-date security best practices from the web
- Base image and package-specific security research
- Performance optimization based on current industry practices
- Technology-specific recommendations with web research
- Multi-stage build optimizations with latest techniques
- Local RAG system with extensive Docker documentation
- Web-enhanced responses for current information
- Dockerfile examples and templates from current sources
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ React UI │ │ FastAPI │ │ MCP Server │
│ (Frontend) │◄──►│ (Backend) │◄──►│ (AI Engine) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
┌─────▼─────┐ ┌────────▼────────┐ ┌──────▼──────┐
│Local RAG │ │ Web Search │ │ LLM │
│(ChromaDB) │ │ (DuckDuckGo/ │ │ (GPT-4) │
│ │ │ Tavily) │ │ │
└───────────┘ └─────────────────┘ └─────────────┘
ContainerShip now uses a unified Pipfile at the root level for all Python dependencies (API, MCP server, and ML models), making development and deployment much simpler.
First run the following.
make installThen run the next two commands in separate terminals.
make dev-mcp
make dev# Set up complete development environment (includes pre-commit hooks)
make setup-dev
# Run all services
make dev # UI + API
make dev-ui # Frontend only
make dev-api # Backend API only
make dev-mcp # MCP server onlymake dev-ui
# Or manually:
cd ui && npm run devThe API now uses the unified Python environment:
make dev-api
# Or manually:
pipenv run apiThe API will be available at:
- API Root: http://localhost:8000/
- Interactive Docs: http://localhost:8000/docs
- Alternative Docs: http://localhost:8000/redoc
The MCP server uses the same unified environment:
# Test the enhanced MCP server
make mcp-test
# Start the MCP server
make dev-mcp
# Debug with MCP inspector
make mcp-inspector
# Initialize knowledge base (first run)
make rag-init# All using the unified pipenv environment
pipenv run mcp-server # Start MCP server
pipenv run mcp-test # Test functionality
pipenv run mcp-inspector # Debug interface
pipenv run rag-init # Initialize RAG system- Copy environment template:
cp .env.example .env- Configure your API keys in
.env:OPENAI_API_KEY(required)TAVILY_API_KEY(optional, for enhanced web search)
docker_docs- Query local Docker documentationweb_search_docker- Real-time web search for Docker informationoptimize_dockerfile- Comprehensive analysis with web researchsearch_dockerfile_examples- Find current examples and templatescheck_security_best_practices- Security analysis with current threat intel
Start the MCP Inspector to test the enhanced functionality:
make mcp-inspectorYou may get a request to download a Node.js package, say yes (this is likely the inspector). Eventually, your browser should open a new tab for MCP Inspector.
Ensure the settings of the server are correct by referring to the values in the settings. They should be set to the following:
Transport Type->Streamable HTTPURL->http://localhost:8000/mcp
Now, you should be ready to connect to the running server and test it.
Click the "connect" button on the bottom left. After successfully connecting, you should be able to view all the enhanced tools under the Tools tab.
make format # Format code with black
make lint # Lint with flake8
make type-check # Type checking with mypy
make test # Run testsUse the bad Dockerfile SORUCE: https://www.infoq.com/articles/docker-size-dive/
