Skip to content

Commit 5846583

Browse files
authored
feat: Ensure micromamba meets minimum required version during build (#533)
1 parent 466239f commit 5846583

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
__pycache__
22
.idea
33
.DS_Store
4+
.vscode

template/v0/Dockerfile

+11
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,19 @@ ENV SAGEMAKER_LOGGING_DIR="/var/log/sagemaker/"
1818
ENV STUDIO_LOGGING_DIR="/var/log/studio/"
1919
ENV EDITOR="nano"
2020
ENV IMAGE_VERSION=$IMAGE_VERSION
21+
ENV PINNED_MICROMAMBA_MINOR_VERSION="1.5.*"
2122

2223
USER root
24+
# Upgrade micromamba to the latest patch version in the pinned minor version range, if applicable
25+
RUN CURRENT_MICROMAMBA_VERSION=$(micromamba --version) && \
26+
echo "Current micromamba version: $CURRENT_MICROMAMBA_VERSION" && \
27+
if [[ "$CURRENT_MICROMAMBA_VERSION" == $PINNED_MICROMAMBA_MINOR_VERSION ]]; then \
28+
echo "Upgrading micromamba to the latest $PINNED_MICROMAMBA_MINOR_VERSION version..." && \
29+
micromamba self-update -c conda-forge --version "$PINNED_MICROMAMBA_MINOR_VERSION"; \
30+
else \
31+
echo "Micromamba is already at version $CURRENT_MICROMAMBA_VERSION (outside $PINNED_MICROMAMBA_MINOR_VERSION). No upgrade performed."; \
32+
fi
33+
2334
RUN usermod "--login=${NB_USER}" "--home=/home/${NB_USER}" --move-home "-u ${NB_UID}" "${MAMBA_USER}" && \
2435
groupmod "--new-name=${NB_USER}" --non-unique "-g ${NB_GID}" "${MAMBA_USER}" && \
2536
# Update the expected value of MAMBA_USER for the

template/v1/Dockerfile

+11
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,19 @@ ENV SAGEMAKER_LOGGING_DIR="/var/log/sagemaker/"
2121
ENV STUDIO_LOGGING_DIR="/var/log/studio/"
2222
ENV EDITOR="nano"
2323
ENV IMAGE_VERSION=$IMAGE_VERSION
24+
ENV PINNED_MICROMAMBA_MINOR_VERSION="1.5.*"
2425

2526
USER root
27+
# Upgrade micromamba to the latest patch version in the pinned minor version range, if applicable
28+
RUN CURRENT_MICROMAMBA_VERSION=$(micromamba --version) && \
29+
echo "Current micromamba version: $CURRENT_MICROMAMBA_VERSION" && \
30+
if [[ "$CURRENT_MICROMAMBA_VERSION" == $PINNED_MICROMAMBA_MINOR_VERSION ]]; then \
31+
echo "Upgrading micromamba to the latest $PINNED_MICROMAMBA_MINOR_VERSION version..." && \
32+
micromamba self-update -c conda-forge --version "$PINNED_MICROMAMBA_MINOR_VERSION"; \
33+
else \
34+
echo "Micromamba is already at version $CURRENT_MICROMAMBA_VERSION (outside $PINNED_MICROMAMBA_MINOR_VERSION). No upgrade performed."; \
35+
fi
36+
2637
RUN usermod "--login=${NB_USER}" "--home=/home/${NB_USER}" --move-home "-u ${NB_UID}" "${MAMBA_USER}" && \
2738
groupmod "--new-name=${NB_USER}" --non-unique "-g ${NB_GID}" "${MAMBA_USER}" && \
2839
# Update the expected value of MAMBA_USER for the

template/v2/Dockerfile

+12
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,25 @@ ARG NB_GID=100
1717

1818
# https://www.openssl.org/source/
1919
ARG FIPS_VALIDATED_SSL=3.0.8
20+
ARG MIN_REQUIRED_MICROMAMBA_VERSION=1.5.11
2021

2122
ENV SAGEMAKER_LOGGING_DIR="/var/log/sagemaker/"
2223
ENV STUDIO_LOGGING_DIR="/var/log/studio/"
2324
ENV EDITOR="nano"
2425
ENV IMAGE_VERSION=$IMAGE_VERSION
26+
ENV PINNED_MICROMAMBA_MINOR_VERSION="1.5.*"
2527

2628
USER root
29+
# Upgrade micromamba to the latest patch version in the pinned minor version range, if applicable
30+
RUN CURRENT_MICROMAMBA_VERSION=$(micromamba --version) && \
31+
echo "Current micromamba version: $CURRENT_MICROMAMBA_VERSION" && \
32+
if [[ "$CURRENT_MICROMAMBA_VERSION" == $PINNED_MICROMAMBA_MINOR_VERSION ]]; then \
33+
echo "Upgrading micromamba to the latest $PINNED_MICROMAMBA_MINOR_VERSION version..." && \
34+
micromamba self-update -c conda-forge --version "$PINNED_MICROMAMBA_MINOR_VERSION"; \
35+
else \
36+
echo "Micromamba is already at version $CURRENT_MICROMAMBA_VERSION (outside $PINNED_MICROMAMBA_MINOR_VERSION). No upgrade performed."; \
37+
fi
38+
2739
RUN usermod "--login=${NB_USER}" "--home=/home/${NB_USER}" --move-home "-u ${NB_UID}" "${MAMBA_USER}" && \
2840
groupmod "--new-name=${NB_USER}" --non-unique "-g ${NB_GID}" "${MAMBA_USER}" && \
2941
# Update the expected value of MAMBA_USER for the

template/v3/Dockerfile

+14
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,26 @@ ARG NB_GID=100
1515

1616
# https://www.openssl.org/source/
1717
ARG FIPS_VALIDATED_SSL=3.0.8
18+
ARG MIN_REQUIRED_MICROMAMBA_VERSION=1.5.11
1819

1920
ENV SAGEMAKER_LOGGING_DIR="/var/log/sagemaker/"
2021
ENV STUDIO_LOGGING_DIR="/var/log/studio/"
2122
ENV EDITOR="nano"
23+
ENV MIN_REQUIRED_MICROMAMBA_VERSION=${MIN_REQUIRED_MICROMAMBA_VERSION}
2224

2325
USER root
26+
27+
# Compare the current micromamba version with the minimum required version, and only upgrade if strictly lower to avoid downgrades.
28+
RUN CURRENT_MICROMAMBA_VERSION=$(micromamba --version) && \
29+
LOWEST_MICROMAMBA_VERSION=$(printf '%s\n%s' "$MIN_REQUIRED_MICROMAMBA_VERSION" "$CURRENT_MICROMAMBA_VERSION" | sort -V | head -n 1) && \
30+
if [ "$LOWEST_MICROMAMBA_VERSION" = "$CURRENT_MICROMAMBA_VERSION" ] && [ "$CURRENT_MICROMAMBA_VERSION" != "$MIN_REQUIRED_MICROMAMBA_VERSION" ]; then \
31+
echo "Upgrading micromamba from $CURRENT_MICROMAMBA_VERSION to $MIN_REQUIRED_MICROMAMBA_VERSION..." && \
32+
micromamba self-update -c conda-forge --version "$MIN_REQUIRED_MICROMAMBA_VERSION"; \
33+
else \
34+
echo "Micromamba is already $MIN_REQUIRED_MICROMAMBA_VERSION or higher (current: $CURRENT_MICROMAMBA_VERSION). No update needed."; \
35+
fi
36+
37+
2438
RUN usermod "--login=${NB_USER}" "--home=/home/${NB_USER}" --move-home "-u ${NB_UID}" "${MAMBA_USER}" && \
2539
groupmod "--new-name=${NB_USER}" --non-unique "-g ${NB_GID}" "${MAMBA_USER}" && \
2640
# Update the expected value of MAMBA_USER for the

0 commit comments

Comments
 (0)