From ade648ae75bd1d0adef4c319215684cf76cba957 Mon Sep 17 00:00:00 2001
From: Artem Baranovskyi <artem.baranovsky1980@gmail.com>
Date: Mon, 6 Jan 2025 16:22:14 +0200
Subject: [PATCH] Image build is optimized.

---
 .gitlab-ci.yml          |  4 ++--
 flask_ml_api/Dockerfile | 23 ++++++++++++++++++-----
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a146540..5da8f94 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -42,8 +42,8 @@ build:
   script:
     - docker buildx create --use
     #    - docker build --cache-from=flask-backend-full --no-cache --progress=plain -t flask-backend-full -f flask_ml_api/Dockerfile .
-    - docker build --cache-from=flask-backend-full --no-cache --progress=plain -t 22baar1mst/asyst-nlp-grader:latest -f flask_ml_api/Dockerfile .
-    - docker build --no-cache --progress=plain -t 22baar1mst/asyst-nlp-grader:latest -f flask_ml_api/Dockerfile .
+    - docker build --cache-from=22baar1mst/asyst-nlp-grader --no-cache --progress=plain -t 22baar1mst/asyst-nlp-grader:latest -f flask_ml_api/Dockerfile .
+#    - docker build --no-cache --progress=plain -t 22baar1mst/asyst-nlp-grader:latest -f flask_ml_api/Dockerfile .
     - echo $DOCKER_REPO
     - docker push 22baar1mst/asyst-nlp-grader:latest
   only:
diff --git a/flask_ml_api/Dockerfile b/flask_ml_api/Dockerfile
index 4c16d3f..49dd2be 100755
--- a/flask_ml_api/Dockerfile
+++ b/flask_ml_api/Dockerfile
@@ -1,4 +1,4 @@
-FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
+FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime as build
 
 RUN apt-get update && apt-get install -y --no-install-recommends \
     build-essential python3-venv && \
@@ -8,13 +8,26 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
 RUN python3 -m venv /opt/myenv
 ENV PATH="/opt/myenv/bin:$PATH"
 
+#RUN pip install --no-cache-dir Flask matplotlib scikit-learn transformers pandas sentence_transformers && \
+#    pip install --no-cache-dir --upgrade setuptools wheel && \
+#    rm -rf /root/.cache/pip
+
+RUN pip install --no-cache-dir Flask && \
+    pip install --no-cache-dir matplotlib && \
+    pip install --no-cache-dir scikit-learn && \
+    pip install --no-cache-dir transformers && \
+    pip install --no-cache-dir pandas && \
+    pip install --no-cache-dir sentence_transformers && \
+    pip install --no-cache-dir --upgrade setuptools wheel
+
+FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
+COPY --from=build /opt/myenv /opt/myenv
+
+ENV PATH="/opt/myenv/bin:$PATH"
+
 WORKDIR /app
 COPY . /app
 
-RUN pip install --no-cache-dir Flask matplotlib scikit-learn transformers pandas sentence_transformers && \
-    pip install --no-cache-dir --upgrade setuptools wheel && \
-    rm -rf /root/.cache/pip
-
 RUN chown -R www-data:www-data /app && chmod -R 755 /app
 
 EXPOSE 5000
-- 
GitLab