dioarafi commited on
Commit
31758fc
1 Parent(s): 47e5c70

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +18 -53
Dockerfile CHANGED
@@ -1,55 +1,20 @@
1
- # Stage 1: Building Environment
2
- FROM python:3.9-alpine AS builder
3
-
4
- ARG BUILD_USERNAME=builder
5
- ARG BUILD_UID=1000
6
- ARG BUILD_GID=1000
7
-
8
- RUN apk add --no-cache --update --virtual .build-deps \
9
- gcc musl-dev openssl-dev cargo \
10
- && pip install --no-cache-dir --upgrade pip \
11
- && pip install --no-cache-dir --disable-pip-version-check wheel \
12
- && mkdir -p /runner \
13
- && chown -R "${BUILD_UID}:${BUILD_GID}" /runner \
14
- && echo "Flask==2.1.1\ntransformers==4.23.0" > /runner/requirements.builder.txt \
15
- && pip install --no-cache-dir --exists-action i --target /runner --disable-pip-version-check -r /runner/requirements.builder.txt \
16
- && apk del .build-deps
17
-
18
- # Stage 2: Production Environment
19
- FROM python:3.9-alpine
20
-
21
- ENV HOME=/app
22
-
23
- RUN apk add --no-cache --update coreutils
24
-
25
- # Determine a dynamic uid/gid pair
26
- RUN MINIMUM_UID=100 \
27
- MAXIMUM_UID=$(cut -d: -f3 /etc/subuid | cut -d- -f1 | sort -rn | head -1) \
28
- MINIMUM_GID=100 \
29
- MAXIMUM_GID=$(cut -d: -f3 /etc/subgid | cut -d- -f1 | sort -rn | head -1) \
30
- ; export MINIMUM_UID MAXIMUM_UID MINIMUM_GID MAXIMUM_GID \
31
- ; NEW_UID=$(printf '%.\*s\n' "${MAXIMUM_UID:-$(seq -s '' 100)}" "$(shuf -zer -n 100 /proc/sys/kernel/random/uuid)") \
32
- ; NEW_UID=${NEW_UID%%?} \
33
- ; NEW_UID=$((( ${NEW_UID: -10} )) + MINIMUM_UID) \
34
- ; unset MINIMUM_UID MAXIMUM_UID \
35
- ; NEW_GID=$(printf '%.\*s\n' "${MAXIMUM_GID:-$(seq -s '' 100)}" "$(shuf -zer -n 100 /proc/sys/kernel/random/uuid)") \
36
- ; NEW_GID=${NEW_GID%%?} \
37
- ; NEW_GID=$((( ${NEW_GID: -10} )) + MINIMUM_GID) \
38
- ; unset MINIMUM_GID MAXIMUM_GID
39
-
40
- RUN addgroup --system --gid "${NEW_GID}" app && adduser --system --uid "${NEW_UID}" --gid "${NEW_GID}" --gecos '' app
41
- WORKDIR ${HOME}
42
-
43
- COPY --chown=app:app --from=builder /runner /app
44
-
45
- COPY --chown=app:app . .
46
-
47
- RUN pip install --no-cache-dir --user --upgrade pip \
48
- && pip install --no-cache-dir --user -r /app/requirements.txt \
49
- && apk del --purge gcc musl-dev openssl-dev cargo
50
-
51
- USER app
52
-
53
- EXPOSE 7860
54
 
55
  CMD ["python", "main.py", "--host", "0.0.0.0", "--port", "7860"]
 
1
+ # Stage 1: Build
2
+ FROM python:3.9 as builder
3
+
4
+ WORKDIR /code
5
+
6
+ COPY ./requirements.txt /code/requirements.txt
7
+
8
+ RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
9
+
10
+ # Copy only necessary files to the next stage
11
+ COPY ./app /code/app
12
+
13
+ # Stage 2: Run
14
+ FROM python:3.9-slim-buster
15
+
16
+ WORKDIR /app
17
+
18
+ COPY --from=builder /code/app /app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
  CMD ["python", "main.py", "--host", "0.0.0.0", "--port", "7860"]