From a5d59011a08400969a4589fb6320ab1ef7c16a70 Mon Sep 17 00:00:00 2001
From: Pascal Baumann <pascal.baumann@hslu.ch>
Date: Wed, 8 Jan 2025 07:56:49 +0000
Subject: [PATCH 1/4] Upgrade base image

---
 Dockerfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Dockerfile b/Dockerfile
index 6ffdbda..ac2df4a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
 # For finding latest versions of the base image see
 # https://github.com/SwissDataScienceCenter/renkulab-docker
-ARG RENKU_BASE_IMAGE=renku/renkulab-py:3.10-0.23.0
+ARG RENKU_BASE_IMAGE=renku/renkulab-py:3.10-0.25.0
 FROM ${RENKU_BASE_IMAGE}
 
 # Uncomment and adapt if code is to be included in the image
-- 
GitLab


From a78daf57c38ace02e3af86f2b68efc73dc698d01 Mon Sep 17 00:00:00 2001
From: Pascal Baumann <pascal.baumann@hslu.ch>
Date: Wed, 8 Jan 2025 09:29:56 +0000
Subject: [PATCH 2/4] Reformat Dockerfile to new renku standard

---
 Dockerfile | 49 ++++++++++++++++++++++++-------------------------
 1 file changed, 24 insertions(+), 25 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index ac2df4a..43efd63 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,28 @@
 # For finding latest versions of the base image see
 # https://github.com/SwissDataScienceCenter/renkulab-docker
 ARG RENKU_BASE_IMAGE=renku/renkulab-py:3.10-0.25.0
+
+########################################################
+#                Renku install section                 #
+ARG RENKU_VERSION=2.9.4
+
+# Install renku from pypi or from github if a dev version
+RUN if [ -n "$RENKU_VERSION" ] ; then \
+        source .renku/venv/bin/activate ; \
+        currentversion=$(renku --version) ; \
+        if [ "$RENKU_VERSION" != "$currentversion" ] ; then \
+            pip uninstall renku -y ; \
+            gitversion=$(echo "$RENKU_VERSION" | sed -n "s/^[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\(rc[[:digit:]]\+\)*\(\.dev[[:digit:]]\+\)*\(+g\([a-f0-9]\+\)\)*\(+dirty\)*$/\4/p") ; \
+            if [ -n "$gitversion" ] ; then \
+                pip install --no-cache-dir --force "git+https://github.com/SwissDataScienceCenter/renku-python.git@$gitversion" ;\
+            else \
+                pip install --no-cache-dir --force renku==${RENKU_VERSION} ;\
+            fi \
+        fi \
+    fi
+#             End Renku install section                #
+########################################################
+
 FROM ${RENKU_BASE_IMAGE}
 
 # Uncomment and adapt if code is to be included in the image
@@ -23,29 +45,6 @@ RUN conda env update -q -f /tmp/environment.yml && \
     /opt/conda/bin/pip install -r /tmp/requirements.txt && \
     conda clean -y --all && conda list && \
     conda env export -n "root"
-RUN conda install -q -y -c conda-forge ffmpeg
+RUN conda install -q -y -c conda-forge ffmpeg  # could be removed, as not used?
 
-# RENKU_VERSION determines the version of the renku CLI
-# that will be used in this image. To find the latest version,
-# visit https://pypi.org/project/renku/#history.
-ARG RENKU_VERSION=2.9.4
-
-########################################################
-# Do not edit this section and do not add anything below
-
-# Install renku from pypi or from github if it's a dev version
-RUN if [ -n "$RENKU_VERSION" ] ; then \
-        source .renku/venv/bin/activate ; \
-        currentversion=$(renku --version) ; \
-        if [ "$RENKU_VERSION" != "$currentversion" ] ; then \
-            pip uninstall -y renku ; \
-            gitversion=$(echo "$RENKU_VERSION" | sed -n "s/^[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\(\.dev[[:digit:]]\+\)*\(+g\([a-f0-9]\+\)\)*\(+dirty\)*$/\3/p") ; \
-            if [ -n "$gitversion" ] ; then \
-                pip install --force "git+https://github.com/SwissDataScienceCenter/renku-python.git@$gitversion" ;\
-            else \
-                pip install --force renku==${RENKU_VERSION} ;\
-            fi \
-        fi \
-    fi
-
-########################################################
+COPY --from=builder ${HOME}/.renku/venv ${HOME}/.renku/venv
-- 
GitLab


From dfff56ec490a5a1630e28838923d8bcafad94a38 Mon Sep 17 00:00:00 2001
From: Pascal Baumann <pascal.baumann@hslu.ch>
Date: Wed, 8 Jan 2025 09:31:30 +0000
Subject: [PATCH 3/4] Add DOCKER_BUILDKIT to CI pipeline

---
 .gitlab-ci.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c3dc4ec..a53654a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ variables:
   GIT_STRATEGY: fetch
   GIT_SSL_NO_VERIFY: "true"
   GIT_LFS_SKIP_SMUDGE: 1
+  DOCKER_BUILDKIT: 1
 
 stages:
   - build
@@ -14,4 +15,4 @@ image_build:
   script: |
     CI_COMMIT_SHA_7=$(echo $CI_COMMIT_SHA | cut -c1-7)
     docker build --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA_7 .
-    docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA_7
\ No newline at end of file
+    docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA_7
-- 
GitLab


From dd97650c7d630f4184318008f7c446078f63cca4 Mon Sep 17 00:00:00 2001
From: Pascal Baumann <pascal.baumann@hslu.ch>
Date: Wed, 8 Jan 2025 09:34:56 +0000
Subject: [PATCH 4/4] Add docker builder context

---
 Dockerfile | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Dockerfile b/Dockerfile
index 43efd63..d3e180d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,6 +4,11 @@ ARG RENKU_BASE_IMAGE=renku/renkulab-py:3.10-0.25.0
 
 ########################################################
 #                Renku install section                 #
+FROM ${RENKU_BASE_IMAGE} as builder
+
+# RENKU_VERSION determines the version of the renku CLI
+# that will be used in this image. To find the latest version,
+# visit https://pypi.org/project/renku/#history.
 ARG RENKU_VERSION=2.9.4
 
 # Install renku from pypi or from github if a dev version
-- 
GitLab