duqing2026 commited on
Commit
df118ab
·
1 Parent(s): a07c108

Fix: PermissionError on HF Spaces by creating user/dirs in Dockerfile

Browse files
Files changed (3) hide show
  1. Dockerfile +7 -3
  2. app.py +6 -2
  3. static/.gitkeep +0 -0
Dockerfile CHANGED
@@ -2,12 +2,16 @@ FROM python:3.9-slim
2
 
3
  WORKDIR /app
4
 
5
- COPY . /app
 
 
 
 
6
 
 
7
  RUN pip install --no-cache-dir flask gunicorn
8
 
9
- # Create a non-root user
10
- RUN useradd -m -u 1000 user
11
  USER user
12
 
13
  ENV HOME=/home/user \
 
2
 
3
  WORKDIR /app
4
 
5
+ # Create a non-root user first
6
+ RUN useradd -m -u 1000 user
7
+
8
+ # Copy files with correct ownership
9
+ COPY --chown=user . /app
10
 
11
+ # Install dependencies
12
  RUN pip install --no-cache-dir flask gunicorn
13
 
14
+ # Switch to non-root user
 
15
  USER user
16
 
17
  ENV HOME=/home/user \
app.py CHANGED
@@ -7,8 +7,12 @@ logging.basicConfig(level=logging.INFO)
7
  logger = logging.getLogger(__name__)
8
 
9
  # Ensure directories exist
10
- os.makedirs('static', exist_ok=True)
11
- os.makedirs('templates', exist_ok=True)
 
 
 
 
12
 
13
  class CustomFlask(Flask):
14
  jinja_options = Flask.jinja_options.copy()
 
7
  logger = logging.getLogger(__name__)
8
 
9
  # Ensure directories exist
10
+ try:
11
+ os.makedirs('static', exist_ok=True)
12
+ os.makedirs('templates', exist_ok=True)
13
+ except OSError as e:
14
+ logger.warning(f"Could not create directories: {e}. Assuming they exist or are not needed for write access.")
15
+
16
 
17
  class CustomFlask(Flask):
18
  jinja_options = Flask.jinja_options.copy()
static/.gitkeep ADDED
File without changes