Files
ortools-clone/cmake/docker/ubuntu/python.Dockerfile
Corentin Le Molgat 3067056625 backport from main branch
* bazel: add missing python typing-extensions requirements
* use [[maybe_unused]] standard attribute
* linear_solver: improve LpQuadraticTerm support
2025-04-30 15:15:39 +02:00

40 lines
1.1 KiB
Docker

FROM ortools/cmake:ubuntu_swig AS env
ENV PATH=/root/.local/bin:$PATH
RUN apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -yq \
python3-dev python3-pip \
python3-setuptools python3-wheel \
python3-venv python3-virtualenv \
python3-numpy python3-pandas python3-typing-extensions \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN python3 -m pip install --break-system-package \
absl-py mypy mypy-protobuf
FROM env AS devel
WORKDIR /home/project
COPY . .
FROM devel AS build
RUN cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
RUN cmake --build build --target all -v
RUN cmake --build build --target install
FROM build AS test
RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test
FROM env AS install_env
WORKDIR /home/sample
COPY --from=build /home/project/build/python/dist/*.whl .
RUN python3 -m pip install --break-system-packages *.whl
FROM install_env AS install_devel
COPY cmake/samples/python .
FROM install_devel AS install_build
RUN python3 -m compileall .
FROM install_build AS install_test
RUN python3 sample.py