samwaugh commited on
Commit
82a2435
Β·
1 Parent(s): 3cb9a37

Change HF_HOME

Browse files
Files changed (2) hide show
  1. Dockerfile +9 -2
  2. backend/runner/config.py +20 -8
Dockerfile CHANGED
@@ -23,9 +23,16 @@ COPY . .
23
  # HF routes traffic to $PORT – bind to it
24
  ENV PORT=7860 PYTHONUNBUFFERED=1
25
 
26
- # Set environment variables for Phase 2 (real ML)
27
- ENV DATA_ROOT=/app/data
 
28
  ENV STUB_MODE=0
29
 
 
 
 
 
 
 
30
  # Use ENTRYPOINT instead of CMD to prevent Hugging Face from overriding
31
  ENTRYPOINT ["gunicorn", "-w", "1", "-k", "gthread", "-t", "300", "-b", "0.0.0.0:7860", "backend.runner.app:app"]
 
23
  # HF routes traffic to $PORT – bind to it
24
  ENV PORT=7860 PYTHONUNBUFFERED=1
25
 
26
+ # Set environment variables for HF Spaces
27
+ ENV HF_HOME=/data
28
+ ENV DATA_ROOT=/data
29
  ENV STUB_MODE=0
30
 
31
+ # Create writable directories and set permissions
32
+ RUN mkdir -p /data/outputs /data/artifacts && \
33
+ chmod 755 /data && \
34
+ chmod 755 /data/outputs && \
35
+ chmod 755 /data/artifacts
36
+
37
  # Use ENTRYPOINT instead of CMD to prevent Hugging Face from overriding
38
  ENTRYPOINT ["gunicorn", "-w", "1", "-k", "gthread", "-t", "300", "-b", "0.0.0.0:7860", "backend.runner.app:app"]
backend/runner/config.py CHANGED
@@ -11,15 +11,27 @@ PROJECT_ROOT = Path(__file__).resolve().parents[2]
11
  DATA_READ_ROOT = PROJECT_ROOT / "data"
12
 
13
  # WRITE root (Space volume - writable)
 
14
  WRITE_ROOT = Path(os.getenv("HF_HOME", "/data"))
15
- if not WRITE_ROOT.exists() or not os.access(WRITE_ROOT, os.W_OK):
16
- print(f"⚠️ WRITE_ROOT {WRITE_ROOT} not writable, trying /tmp")
17
- WRITE_ROOT = Path("/tmp")
18
- if not os.access(WRITE_ROOT, os.W_OK):
19
- print(f"❌ Neither /data nor /tmp are writable")
20
- raise RuntimeError("No writable directory available")
21
- else:
22
- print(f"βœ… Using WRITE_ROOT: {WRITE_ROOT}")
 
 
 
 
 
 
 
 
 
 
 
23
 
24
  print(f"βœ… Using READ_ROOT: {DATA_READ_ROOT}")
25
 
 
11
  DATA_READ_ROOT = PROJECT_ROOT / "data"
12
 
13
  # WRITE root (Space volume - writable)
14
+ # HF Spaces uses /data for persistent storage
15
  WRITE_ROOT = Path(os.getenv("HF_HOME", "/data"))
16
+
17
+ # Check if the directory exists and is writable
18
+ if not WRITE_ROOT.exists():
19
+ print(f"⚠️ WRITE_ROOT {WRITE_ROOT} does not exist, trying to create it")
20
+ try:
21
+ WRITE_ROOT.mkdir(parents=True, exist_ok=True)
22
+ print(f"βœ… Created WRITE_ROOT: {WRITE_ROOT}")
23
+ except Exception as e:
24
+ print(f"❌ Failed to create {WRITE_ROOT}: {e}")
25
+ raise RuntimeError(f"Cannot create writable directory: {e}")
26
+
27
+ # Check write permissions
28
+ if not os.access(WRITE_ROOT, os.W_OK):
29
+ print(f"❌ WRITE_ROOT {WRITE_ROOT} is not writable")
30
+ print(f"❌ Current permissions: {oct(WRITE_ROOT.stat().st_mode)[-3:]}")
31
+ print(f"❌ Owner: {WRITE_ROOT.owner()}")
32
+ raise RuntimeError(f"Directory {WRITE_ROOT} is not writable")
33
+
34
+ print(f"βœ… Using WRITE_ROOT: {WRITE_ROOT}")
35
 
36
  print(f"βœ… Using READ_ROOT: {DATA_READ_ROOT}")
37