Hoe commited on
Commit
be9ae22
·
1 Parent(s): a05ab8f

Fix: run uvicorn as a python module

Browse files
Files changed (1) hide show
  1. Dockerfile +13 -9
Dockerfile CHANGED
@@ -1,22 +1,26 @@
1
  FROM python:3.11-slim
2
 
 
3
  RUN useradd -m -u 1000 user
4
- RUN mkdir -p /home/user/app/data && chown -R user:user /home/user/app
5
  WORKDIR /home/user/app
6
 
 
7
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
8
 
9
- USER user
10
  COPY --chown=user . .
11
 
 
 
12
  RUN /usr/local/bin/uv sync --all-extras && \
13
- /usr/local/bin/uv add uvicorn fastapi && \
14
- /usr/local/bin/uv pip install -e ./duckdb_loader
15
-
16
- WORKDIR /home/user/app/duckdb_loader
17
 
18
- ENV PORT=7860
 
19
  ENV PYTHONPATH=/home/user/app/duckdb_loader
20
- EXPOSE 7860
21
 
22
- CMD ["/usr/local/bin/uv", "run", "python", "-m", "uvicorn", "duckdb_loader.duckdb_loader.main:app", "--host", "0.0.0.0", "--port", "7860"]
 
 
 
 
1
  FROM python:3.11-slim
2
 
3
+ # 1. Setup User
4
  RUN useradd -m -u 1000 user
 
5
  WORKDIR /home/user/app
6
 
7
+ # 2. Install UV
8
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
9
 
10
+ # 3. Copy everything
11
  COPY --chown=user . .
12
 
13
+ # 4. Install dependencies
14
+ # We install the workspace and ensure fastapi/uvicorn are present
15
  RUN /usr/local/bin/uv sync --all-extras && \
16
+ /usr/local/bin/uv add fastapi uvicorn
 
 
 
17
 
18
+ # 5. THE FIX: Set PYTHONPATH to the inner source folder
19
+ # This allows 'import duckdb_loader' to find the folder containing __init__.py
20
  ENV PYTHONPATH=/home/user/app/duckdb_loader
21
+ USER user
22
 
23
+ # 6. Start the app
24
+ # We point to the file located at /app/duckdb_loader/duckdb_loader/main.py
25
+ # Using the package.module:app syntax
26
+ CMD ["/usr/local/bin/uv", "run", "python", "-m", "uvicorn", "duckdb_loader.main:app", "--host", "0.0.0.0", "--port", "7860"]