Ekimart078 commited on
Commit
53d2b99
·
1 Parent(s): 2c18844

Refactor Dockerfile and dependencies: simplify build process, add `uvicorn[standard]` to requirements, and streamline runtime setup.

Browse files
Files changed (2) hide show
  1. Dockerfile +14 -38
  2. requirements.txt +1 -0
Dockerfile CHANGED
@@ -1,52 +1,28 @@
1
- FROM python:3.13.0a3-slim-bookworm AS builder
2
 
3
  ENV PYTHONUNBUFFERED=1 \
4
  PYTHONDONTWRITEBYTECODE=1 \
5
- PIP_NO_CACHE_DIR=off \
6
- PIP_DISABLE_PIP_VERSION_CHECK=on
7
 
8
  RUN apt-get update -qq && \
9
- apt-get install -y --no-install-recommends \
10
- build-essential \
11
- pkg-config \
12
- libssl-dev && \
13
- apt-get clean && \
14
- rm -rf /var/lib/apt/lists/*
15
 
16
- WORKDIR /app
17
 
18
- COPY . .
19
 
20
- RUN python -m venv /venv && \
21
- /venv/bin/pip install --no-cache-dir --upgrade pip wheel setuptools && \
22
- /venv/bin/pip install --no-cache-dir -r requirements.txt
23
 
24
- FROM python:3.13.0a3-slim-bookworm AS runtime
 
25
 
26
- ENV PYTHONUNBUFFERED=1 \
27
- PYTHONDONTWRITEBYTECODE=1 \
28
- PATH="/venv/bin:$PATH" \
29
- PYTHONPATH="/app" \
30
- PORT=7860
31
-
32
- RUN apt-get update -qq && \
33
- apt-get install -y --no-install-recommends \
34
- libssl3 \
35
- ca-certificates && \
36
- apt-get clean && \
37
- rm -rf /var/lib/apt/lists/* && \
38
- # Création d'un utilisateur non-root
39
- groupadd -r appgroup --gid=1000 && \
40
- useradd -r -g appgroup --uid=1000 --create-home --shell=/bin/false appuser
41
-
42
- COPY --from=builder --chown=appuser:appgroup /venv /venv
43
-
44
- USER appuser:appgroup
45
- WORKDIR /app
46
 
47
- COPY --chown=appuser:appgroup . .
48
 
49
  EXPOSE ${PORT}
50
 
51
- ENTRYPOINT ["python", "-m", "uvicorn"]
52
- CMD ["main:app", "--host", "0.0.0.0", "--port", "${PORT}"]
 
1
+ FROM python:3.13.0a3-slim-bookworm
2
 
3
  ENV PYTHONUNBUFFERED=1 \
4
  PYTHONDONTWRITEBYTECODE=1 \
5
+ PATH="/home/appuser/.local/bin:$PATH" \
6
+ PORT=7860
7
 
8
  RUN apt-get update -qq && \
9
+ apt-get install -y --no-install-recommends build-essential libssl-dev ca-certificates && \
10
+ apt-get clean && rm -rf /var/lib/apt/lists/*
 
 
 
 
11
 
12
+ RUN useradd -m -u 1000 appuser
13
 
14
+ WORKDIR /app
15
 
16
+ COPY requirements.txt .
 
 
17
 
18
+ RUN pip install --no-cache-dir --upgrade pip && \
19
+ pip install --no-cache-dir -r requirements.txt
20
 
21
+ COPY . .
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
+ USER appuser
24
 
25
  EXPOSE ${PORT}
26
 
27
+ ENTRYPOINT ["uvicorn"]
28
+ CMD ["main:app", "--host", "0.0.0.0", "--port", "7860"]
requirements.txt CHANGED
@@ -2,3 +2,4 @@ colorama
2
  PyYAML
3
  pydantic
4
  fastapi
 
 
2
  PyYAML
3
  pydantic
4
  fastapi
5
+ uvicorn[standard]