Emperor555 Claude commited on
Commit
61f5ac3
·
1 Parent(s): bf5dad7

Use Docker SDK for HF Spaces with Gradio 5+ and MCP

Browse files

- Switch to Docker SDK for full control over environment
- Restore Gradio 5+ with MCP server support
- Python 3.11 for compatibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

Files changed (4) hide show
  1. Dockerfile +31 -0
  2. README.md +1 -2
  3. app.py +1 -2
  4. requirements.txt +0 -1
Dockerfile ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Install system dependencies
6
+ RUN apt-get update && apt-get install -y \
7
+ build-essential \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ # Copy requirements first for caching
11
+ COPY requirements.txt .
12
+ RUN pip install --no-cache-dir -r requirements.txt
13
+
14
+ # Copy application code
15
+ COPY . .
16
+
17
+ # Create non-root user for HF Spaces
18
+ RUN useradd -m -u 1000 user
19
+ USER user
20
+
21
+ # Set environment variables
22
+ ENV HOME=/home/user \
23
+ PATH=/home/user/.local/bin:$PATH \
24
+ GRADIO_SERVER_NAME=0.0.0.0 \
25
+ GRADIO_SERVER_PORT=7860
26
+
27
+ # Expose port
28
+ EXPOSE 7860
29
+
30
+ # Run the application
31
+ CMD ["python", "app.py"]
README.md CHANGED
@@ -3,8 +3,7 @@ title: Explainor
3
  emoji: 🎭
4
  colorFrom: purple
5
  colorTo: pink
6
- sdk: gradio
7
- sdk_version: 5.0.0
8
  app_file: app.py
9
  pinned: false
10
  license: mit
 
3
  emoji: 🎭
4
  colorFrom: purple
5
  colorTo: pink
6
+ sdk: docker
 
7
  app_file: app.py
8
  pinned: false
9
  license: mit
app.py CHANGED
@@ -315,13 +315,12 @@ input::placeholder, textarea::placeholder {
315
  """
316
 
317
  if __name__ == "__main__":
318
- # MCP server only works locally, not on Modal
319
  enable_mcp = os.getenv("ENABLE_MCP_SERVER", "true").lower() == "true"
320
 
321
  app.launch(
322
  server_name="0.0.0.0",
323
  server_port=7860,
324
  share=False,
325
- css=CUSTOM_CSS,
326
  mcp_server=enable_mcp,
327
  )
 
315
  """
316
 
317
  if __name__ == "__main__":
318
+ # MCP server enabled for Gradio 5+
319
  enable_mcp = os.getenv("ENABLE_MCP_SERVER", "true").lower() == "true"
320
 
321
  app.launch(
322
  server_name="0.0.0.0",
323
  server_port=7860,
324
  share=False,
 
325
  mcp_server=enable_mcp,
326
  )
requirements.txt CHANGED
@@ -2,4 +2,3 @@ gradio[mcp]>=5.0.0
2
  elevenlabs>=1.0.0
3
  httpx>=0.25.0
4
  python-dotenv>=1.0.0
5
- huggingface_hub>=0.25.0
 
2
  elevenlabs>=1.0.0
3
  httpx>=0.25.0
4
  python-dotenv>=1.0.0