• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2024 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15from ubuntu:24.04
16
17ENV DEBIAN_FRONTEND noninteractive
18
19# Ensure local Python is preferred over distribution Python.
20ENV PATH /usr/local/bin:$PATH
21
22# Install dependencies.
23RUN apt-get update \
24  && apt-get install -y --no-install-recommends \
25    apt-transport-https \
26    build-essential \
27    ca-certificates \
28    curl \
29    dirmngr \
30    git \
31    gpg-agent \
32    graphviz \
33    libbz2-dev \
34    libdb5.3-dev \
35    libexpat1-dev \
36    libffi-dev \
37    liblzma-dev \
38    libreadline-dev \
39    libsnappy-dev \
40    libssl-dev \
41    libsqlite3-dev \
42    portaudio19-dev \
43    redis-server \
44    software-properties-common \
45    ssh \
46    sudo \
47    tcl \
48    tcl-dev \
49    tk \
50    tk-dev \
51    uuid-dev \
52    wget \
53    zlib1g-dev \
54  && add-apt-repository universe \
55  && apt-get update \
56  && apt-get -y install jq \
57  && apt-get clean autoclean \
58  && apt-get autoremove -y \
59  && rm -rf /var/lib/apt/lists/* \
60  && rm -f /var/cache/apt/archives/*.deb
61
62
63###################### Install python 3.10.14 for docs/docfx session
64
65# Download python 3.10.14
66RUN wget https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz
67
68# Extract files
69RUN tar -xvf Python-3.10.14.tgz
70
71# Install python 3.10.14
72RUN ./Python-3.10.14/configure --enable-optimizations
73RUN make altinstall
74
75ENV PATH /usr/local/bin/python3.10:$PATH
76
77###################### Install pip
78RUN wget -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \
79  && python3.10 /tmp/get-pip.py \
80  && rm /tmp/get-pip.py
81
82# Test pip
83RUN python3.10 -m pip
84
85# Install build requirements
86COPY requirements.txt /requirements.txt
87RUN python3.10 -m pip install --require-hashes -r requirements.txt
88
89CMD ["python3.10"]
90