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