Spaces:
Sleeping
Sleeping
Commit
·
df118ab
1
Parent(s):
a07c108
Fix: PermissionError on HF Spaces by creating user/dirs in Dockerfile
Browse files- Dockerfile +7 -3
- app.py +6 -2
- static/.gitkeep +0 -0
Dockerfile
CHANGED
|
@@ -2,12 +2,16 @@ FROM python:3.9-slim
|
|
| 2 |
|
| 3 |
WORKDIR /app
|
| 4 |
|
| 5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
|
|
|
|
| 7 |
RUN pip install --no-cache-dir flask gunicorn
|
| 8 |
|
| 9 |
-
#
|
| 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 |
-
|
| 11 |
-
os.makedirs('
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|