Aasher commited on
Commit
9e9873f
·
1 Parent(s): 65127e8

feat(docker): add Dockerfile and .dockerignore for containerization setup

Browse files
Files changed (2) hide show
  1. .dockerignore +33 -0
  2. Dockerfile +33 -0
.dockerignore ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Git
2
+ .git
3
+ .gitignore
4
+ .python-version
5
+
6
+ # Docker
7
+ Dockerfile
8
+ .dockerignore
9
+
10
+ # Virtual environment
11
+ .venv
12
+ venv
13
+ env
14
+
15
+ # Python cache
16
+ __pycache__
17
+ *.pyc
18
+ *.pyo
19
+ *.pyd
20
+
21
+
22
+ # IDE and OS-specific
23
+ .vscode/
24
+ .idea/
25
+ .DS_Store
26
+
27
+ # Local secrets and config
28
+ .env
29
+ *.env.*
30
+
31
+ # Project-specific
32
+ ingestion/
33
+ workflow.ipynb
Dockerfile ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Base image
2
+ FROM python:3.12-slim
3
+
4
+ # Install system dependencies and uv as root
5
+ RUN apt-get update && \
6
+ apt-get install -y curl && \
7
+ curl -LsSf https://astral.sh/uv/install.sh | sh && \
8
+ mv /root/.local/bin/uv /usr/local/bin/ && \
9
+ mv /root/.local/bin/uvx /usr/local/bin/ && \
10
+ mkdir -p /.cache/uv
11
+
12
+ # Copy project configuration first
13
+ COPY pyproject.toml .
14
+
15
+ # Install Python packages as root using uv sync
16
+ RUN uv sync && \
17
+ rm -rf /.uv
18
+
19
+ # Set environment variables
20
+ ENV PYTHONDONTWRITEBYTECODE 1
21
+ ENV PYTHONUNBUFFERED 1
22
+ ENV PYTHONPATH=/app
23
+
24
+ # Set the working directory in the container
25
+ WORKDIR /app
26
+
27
+ COPY . .
28
+
29
+ # Expose the port the app runs on
30
+ EXPOSE 8000
31
+
32
+ # Command to run the application using Uvicorn
33
+ CMD ["uv", "run", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]