Turn any GitHub repository into a production-ready Docker container with AI-powered Dockerfile generation.
Gitcontainer is an AI-powered web application that automatically generates production-ready Dockerfiles by analyzing GitHub repositories. Simply paste a GitHub URL and get a tailored Dockerfile with intelligent base image selection, dependency management, and Docker best practices.
Simply replace github.com
with gitcontainer.com
in any GitHub repository URL to instantly access the Dockerfile generation page for that repository.
For example:
https://github.com/username/repo → https://gitcontainer.com/username/repo
- 🔄 Instant URL Access: Just replace 'github.com' with 'gitcontainer.com' in any GitHub URL
- 🤖 AI-Powered Analysis: Uses OpenAI GPT-4 to analyze repository structure and generate intelligent Dockerfiles
- ⚡ Real-time Streaming: Watch the AI generate your Dockerfile in real-time with WebSocket streaming
- 🎯 Smart Detection: Automatically detects technology stacks (Python, Node.js, Java, Go, etc.)
- 🔧 Production-Ready: Generates Dockerfiles following best practices with proper security, multi-stage builds, and optimization
- 📋 Additional Instructions: Add custom requirements for specialized environments
- 📄 Docker Compose: Automatically suggests docker-compose.yml for complex applications
- 🎨 Modern UI: Clean, responsive interface with Monaco editor for syntax highlighting
- 📱 Mobile Friendly: Works seamlessly on desktop and mobile devices
- Python 3.9 or higher
- Git
- OpenAI API key
-
Clone the repository:
git clone https://github.com/cyclotruc/gitcontainer.git cd gitcontainer
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
# Create .env file echo "OPENAI_API_KEY=your_openai_api_key_here" > .env
-
Run the application:
python app.py
-
Open your browser: Navigate to
http://localhost:8000
- URL Processing: Access any repository by replacing 'github.com' with 'gitcontainer.com' in the URL
- Repository Cloning: Gitcontainer clones the GitHub repository locally using Git
- Code Analysis: Uses gitingest to analyze the repository structure and extract relevant information
- AI Generation: Sends the analysis to OpenAI GPT-4 with specialized prompts for Dockerfile generation
- Smart Optimization: The AI considers:
- Technology stack detection
- Dependency management
- Security best practices
- Multi-stage builds when beneficial
- Port configuration
- Environment variables
- Health checks
cyclotruc-gitcontainer/
├── app.py # Main FastAPI application
├── requirements.txt # Python dependencies
├── .env # Environment variables (create this)
├── static/ # Static assets (icons, CSS)
├── templates/
│ └── index.jinja # Main HTML template
└── tools/ # Core functionality modules
├── __init__.py
├── create_container.py # AI Dockerfile generation
├── git_operations.py # GitHub repository cloning
└── gitingest.py # Repository analysis
Variable | Description | Required |
---|---|---|
OPENAI_API_KEY |
Your OpenAI API key | Yes |
PORT |
Server port (default: 8000) | No |
HOST |
Server host (default: 0.0.0.0) | No |
You can use the tools programmatically:
from tools import clone_repo_tool, gitingest_tool, create_container_tool
import asyncio
async def generate_dockerfile(github_url):
# Clone repository
clone_result = await clone_repo_tool(github_url)
# Analyze with gitingest
analysis = await gitingest_tool(clone_result['local_path'])
# Generate Dockerfile
dockerfile = await create_container_tool(
gitingest_summary=analysis['summary'],
gitingest_tree=analysis['tree'],
gitingest_content=analysis['content']
)
return dockerfile
# Usage
result = asyncio.run(generate_dockerfile("https://github.com/user/repo"))
print(result['dockerfile'])
Use the "Additional instructions" feature to customize generation:
"Use Alpine Linux for smaller image size"
"Include Redis and PostgreSQL"
"Optimize for production deployment"
"Add development tools for debugging"
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for providing the GPT-4 API
- gitingest for repository analysis capabilities
- FastAPI for the excellent web framework
- Monaco Editor for code syntax highlighting
- GitHub Repository: https://github.com/cyclotruc/gitcontainer
- Demo: Try it live with example repositories
- Issues: Report bugs or request features
Made with ❤️ by Romain Courtois
Turn any repository into a container in seconds!