amine_dubs
commited on
Commit
·
d121cb4
1
Parent(s):
d6d82c2
Restore backend files and ensure Dockerfile is in root
Browse files- Dockerfile +42 -0
- README.md +1 -0
Dockerfile
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Use an official Python Alpine runtime as a parent image for smaller size
|
2 |
+
FROM python:3.13-alpine
|
3 |
+
|
4 |
+
# Set the working directory in the container
|
5 |
+
# All subsequent commands (COPY, RUN, CMD) use this path
|
6 |
+
WORKDIR /app
|
7 |
+
|
8 |
+
# Install system dependencies that might be needed by Python packages on Alpine
|
9 |
+
# Example for PyMuPDF: RUN apk add --no-cache musl-dev freetype-dev harfbuzz-dev jpeg-dev openjpeg-dev zlib-dev tiff-dev lcms2-dev
|
10 |
+
# RUN apk add --no-cache some-alpine-package
|
11 |
+
|
12 |
+
# Copy only the requirements file first to leverage Docker cache
|
13 |
+
COPY backend/requirements.txt /app/requirements.txt
|
14 |
+
|
15 |
+
# Install Python dependencies
|
16 |
+
RUN pip install --no-cache-dir --upgrade pip
|
17 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
18 |
+
|
19 |
+
# Copy the rest of the application code into the container
|
20 |
+
# This includes the backend directory, templates, static files etc.
|
21 |
+
# Adjust the source paths based on your project structure relative to the Dockerfile location
|
22 |
+
COPY backend/ /app/backend
|
23 |
+
COPY templates/ /app/templates
|
24 |
+
COPY static/ /app/static
|
25 |
+
# We don't copy uploads dir, it will be created by the app if needed
|
26 |
+
|
27 |
+
# Create the necessary directories within the container that the app expects
|
28 |
+
# Although the app tries to create them, it's good practice for Dockerfile to ensure they exist
|
29 |
+
RUN mkdir -p /app/templates /app/static /app/uploads
|
30 |
+
|
31 |
+
# Make port 8000 available to the world outside this container
|
32 |
+
# Hugging Face Spaces often map to this port from the outside world (port 7860 is also common)
|
33 |
+
EXPOSE 8000
|
34 |
+
|
35 |
+
# Define environment variable (optional)
|
36 |
+
# ENV NAME World
|
37 |
+
|
38 |
+
# Run main.py using uvicorn when the container launches
|
39 |
+
# The command needs to specify the location of the app module (backend.main:app)
|
40 |
+
# Host 0.0.0.0 makes it accessible from outside the container
|
41 |
+
# Add --reload flag for development if needed, but remove for production
|
42 |
+
CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000"]
|
README.md
CHANGED
@@ -4,6 +4,7 @@ emoji: 📊
|
|
4 |
colorFrom: pink
|
5 |
colorTo: purple
|
6 |
sdk: docker
|
|
|
7 |
pinned: false
|
8 |
---
|
9 |
|
|
|
4 |
colorFrom: pink
|
5 |
colorTo: purple
|
6 |
sdk: docker
|
7 |
+
app_port: 8000 # Added required port for Docker SDK
|
8 |
pinned: false
|
9 |
---
|
10 |
|