Spaces:
Sleeping
Sleeping
Commit
·
82ec91b
1
Parent(s):
ff1a300
Refactor Dockerfile for improved user creation and permissions; update README and app.py for environment variable consistency
Browse files- Dockerfile +5 -1
- README.md +1 -0
- app.py +12 -2
Dockerfile
CHANGED
@@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y \
|
|
10 |
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
11 |
|
12 |
# Create non-root user for security
|
13 |
-
RUN groupadd -r appuser && useradd -r -g appuser appuser
|
14 |
|
15 |
# Set working directory
|
16 |
WORKDIR /app
|
@@ -25,12 +25,16 @@ COPY app.py .
|
|
25 |
COPY start.sh .
|
26 |
RUN chmod +x start.sh
|
27 |
|
|
|
|
|
|
|
28 |
# Change ownership to non-root user
|
29 |
RUN chown -R appuser:appuser /app
|
30 |
|
31 |
# Set environment variables
|
32 |
ENV OLLAMA_HOST=0.0.0.0:11434
|
33 |
ENV OLLAMA_ORIGINS=*
|
|
|
34 |
|
35 |
# Expose ports
|
36 |
EXPOSE 7860
|
|
|
10 |
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
11 |
|
12 |
# Create non-root user for security
|
13 |
+
RUN groupadd -r appuser && useradd -r -g appuser -m appuser
|
14 |
|
15 |
# Set working directory
|
16 |
WORKDIR /app
|
|
|
25 |
COPY start.sh .
|
26 |
RUN chmod +x start.sh
|
27 |
|
28 |
+
# Create Ollama directory and set permissions
|
29 |
+
RUN mkdir -p /home/appuser/.ollama && chown -R appuser:appuser /home/appuser/.ollama
|
30 |
+
|
31 |
# Change ownership to non-root user
|
32 |
RUN chown -R appuser:appuser /app
|
33 |
|
34 |
# Set environment variables
|
35 |
ENV OLLAMA_HOST=0.0.0.0:11434
|
36 |
ENV OLLAMA_ORIGINS=*
|
37 |
+
ENV HOME=/home/appuser
|
38 |
|
39 |
# Expose ports
|
40 |
EXPOSE 7860
|
README.md
CHANGED
@@ -4,6 +4,7 @@ emoji: 📚
|
|
4 |
colorFrom: gray
|
5 |
colorTo: green
|
6 |
sdk: docker
|
|
|
7 |
pinned: false
|
8 |
license: mit
|
9 |
---
|
|
|
4 |
colorFrom: gray
|
5 |
colorTo: green
|
6 |
sdk: docker
|
7 |
+
app_port: 7860
|
8 |
pinned: false
|
9 |
license: mit
|
10 |
---
|
app.py
CHANGED
@@ -7,17 +7,27 @@ This file serves as the main entry point for the Hugging Face Space.
|
|
7 |
import os
|
8 |
import sys
|
9 |
import uvicorn
|
|
|
|
|
|
|
|
|
|
|
10 |
from fast import app
|
11 |
|
12 |
# Ensure the app runs on the correct port for Hugging Face Spaces
|
13 |
PORT = int(os.environ.get("PORT", 7860))
|
14 |
HOST = "0.0.0.0"
|
15 |
|
|
|
|
|
|
|
|
|
16 |
if __name__ == "__main__":
|
17 |
print(f"Starting Vestiq Fashion Analyzer on {HOST}:{PORT}")
|
|
|
18 |
uvicorn.run(
|
19 |
-
app,
|
20 |
-
host=HOST,
|
21 |
port=PORT,
|
22 |
log_level="info"
|
23 |
)
|
|
|
7 |
import os
|
8 |
import sys
|
9 |
import uvicorn
|
10 |
+
|
11 |
+
# Add the current directory to Python path
|
12 |
+
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
13 |
+
|
14 |
+
# Import the FastAPI app
|
15 |
from fast import app
|
16 |
|
17 |
# Ensure the app runs on the correct port for Hugging Face Spaces
|
18 |
PORT = int(os.environ.get("PORT", 7860))
|
19 |
HOST = "0.0.0.0"
|
20 |
|
21 |
+
# For Hugging Face Spaces, we need to make sure the app is available at module level
|
22 |
+
# This allows HF to detect it properly
|
23 |
+
application = app
|
24 |
+
|
25 |
if __name__ == "__main__":
|
26 |
print(f"Starting Vestiq Fashion Analyzer on {HOST}:{PORT}")
|
27 |
+
print(f"Environment: {os.environ.get('SPACE_ID', 'local')}")
|
28 |
uvicorn.run(
|
29 |
+
app,
|
30 |
+
host=HOST,
|
31 |
port=PORT,
|
32 |
log_level="info"
|
33 |
)
|