1414
1515# We want to use LTS ubuntu from our mirror because dockerhub has a
1616# rate limit.
17- FROM mirror.gcr.io/library/ubuntu:20 .04
17+ FROM mirror.gcr.io/library/ubuntu:24 .04
1818
1919ENV DEBIAN_FRONTEND noninteractive
2020
@@ -28,6 +28,7 @@ ENV LANG C.UTF-8
2828
2929# Install dependencies.
3030RUN apt-get update \
31+ && apt -y upgrade \
3132 && apt-get install -y --no-install-recommends \
3233 apt-transport-https \
3334 build-essential \
@@ -115,7 +116,7 @@ RUN set -ex \
115116 && export GNUPGHOME="$(mktemp -d)" \
116117 && echo "disable-ipv6" >> "${GNUPGHOME}/dirmngr.conf" \
117118 && /tmp/fetch_gpg_keys.sh \
118- && for PYTHON_VERSION in 2.7.18 3.7.17 3.8.18 3.9.18 3.10.13 3.11.6 3.12.0; do \
119+ && for PYTHON_VERSION in 2.7.18 3.7.17 3.8.20 3.9.20 3.10.15 3.11.10 3.12.7 3.13 .0; do \
119120 wget --no-check-certificate -O python-${PYTHON_VERSION}.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
120121 && wget --no-check-certificate -O python-${PYTHON_VERSION}.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
121122 && gpg --batch --verify python-${PYTHON_VERSION}.tar.xz.asc python-${PYTHON_VERSION}.tar.xz \
@@ -144,7 +145,8 @@ RUN set -ex \
144145# If the environment variable is called "PIP_VERSION", pip explodes with
145146# "ValueError: invalid truth value '<VERSION>'"
146147ENV PYTHON_PIP_VERSION 21.3.1
147- RUN wget --no-check-certificate -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \
148+ RUN wget --no-check-certificate -O /tmp/get-pip-3-7.py 'https://bootstrap.pypa.io/pip/3.7/get-pip.py' \
149+ && wget --no-check-certificate -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \
148150 && python3.10 /tmp/get-pip.py "pip==$PYTHON_PIP_VERSION" \
149151 # we use "--force-reinstall" for the case where the version of pip we're trying to install is the same as the version bundled with Python
150152 # ("Requirement already up-to-date: pip==8.1.2 in /usr/local/lib/python3.10/site-packages")
@@ -155,11 +157,12 @@ RUN wget --no-check-certificate -O /tmp/get-pip.py 'https://bootstrap.pypa.io/ge
155157 && [ "$(pip list |tac|tac| awk -F '[ ()]+' '$1 == " pip" { print $2; exit }')" = "$PYTHON_PIP_VERSION" ]
156158
157159# Ensure Pip for all python3 versions
160+ RUN python3.13 /tmp/get-pip.py
158161RUN python3.12 /tmp/get-pip.py
159162RUN python3.11 /tmp/get-pip.py
160163RUN python3.9 /tmp/get-pip.py
161164RUN python3.8 /tmp/get-pip.py
162- RUN python3.7 /tmp/get-pip.py
165+ RUN python3.7 /tmp/get-pip-3-7 .py
163166RUN rm /tmp/get-pip.py
164167
165168# Test Pip
@@ -170,15 +173,17 @@ RUN python3.9 -m pip
170173RUN python3.10 -m pip
171174RUN python3.11 -m pip
172175RUN python3.12 -m pip
176+ RUN python3.13 -m pip
173177
174178# Install "setuptools" for Python 3.12+ (see https://docs.python.org/3/whatsnew/3.12.html#distutils)
175179RUN python3.12 -m pip install --no-cache-dir setuptools
180+ RUN python3.13 -m pip install --no-cache-dir setuptools
176181
177182# Install "virtualenv", since the vast majority of users of this image will want it.
178183RUN pip install --no-cache-dir virtualenv
179184
180185# Setup Cloud SDK
181- ENV CLOUD_SDK_VERSION 389 .0.0
186+ ENV CLOUD_SDK_VERSION 502 .0.0
182187# Use system python for cloud sdk.
183188ENV CLOUDSDK_PYTHON python3.10
184189RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-$CLOUD_SDK_VERSION-linux-x86_64.tar.gz
@@ -192,7 +197,8 @@ RUN sudo systemctl enable redis-server.service
192197# Create a user and allow sudo
193198
194199# kbuilder uid on the default Kokoro image
195- ARG UID=1000
200+ # UID 1000 is taken in Ubuntu 24.04
201+ ARG UID=10000
196202ARG USERNAME=kbuilder
197203
198204# Add a new user to the container image.
0 commit comments