|
| 1 | +# Licensed to the Apache Software Foundation (ASF) under one |
| 2 | +# or more contributor license agreements. See the NOTICE file |
| 3 | +# distributed with this work for additional information |
| 4 | +# regarding copyright ownership. The ASF licenses this file |
| 5 | +# to you under the Apache License, Version 2.0 (the |
| 6 | +# "License"); you may not use this file except in compliance |
| 7 | +# with the License. You may obtain a copy of the License at |
| 8 | +# |
| 9 | +# http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | +# |
| 11 | +# Unless required by applicable law or agreed to in writing, |
| 12 | +# software distributed under the License is distributed on an |
| 13 | +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| 14 | +# KIND, either express or implied. See the License for the |
| 15 | +# specific language governing permissions and limitations |
| 16 | +# under the License. |
| 17 | + |
| 18 | +ARG base |
| 19 | +FROM ${base} |
| 20 | + |
| 21 | +RUN apk add --no-cache \ |
| 22 | + bash \ |
| 23 | + build-base \ |
| 24 | + bzip2-dev \ |
| 25 | + g++ \ |
| 26 | + git \ |
| 27 | + libffi-dev \ |
| 28 | + libnsl-dev \ |
| 29 | + libtirpc-dev \ |
| 30 | + linux-headers \ |
| 31 | + ncurses-dev \ |
| 32 | + openssl-dev \ |
| 33 | + pkgconf \ |
| 34 | + tzdata \ |
| 35 | + zlib-dev |
| 36 | + |
| 37 | +# Install Python3.13.2 without GIL |
| 38 | +RUN wget https://github.com/python/cpython/archive/refs/tags/v3.13.2.tar.gz && \ |
| 39 | + tar -xzf v3.13.2.tar.gz && \ |
| 40 | + rm v3.13.2.tar.gz && \ |
| 41 | + cd cpython-3.13.2/ && \ |
| 42 | + ./configure --disable-gil --with-ensurepip && \ |
| 43 | + make -j && \ |
| 44 | + make install && \ |
| 45 | + cd ../ && \ |
| 46 | + rm -rf cpython-3.13.2/ |
| 47 | + |
| 48 | +ENV ARROW_PYTHON_VENV /arrow-dev |
| 49 | +RUN python3.13t -m venv ${ARROW_PYTHON_VENV} |
| 50 | + |
| 51 | +ENV PYTHON_GIL 0 |
| 52 | +ENV PATH "${ARROW_PYTHON_VENV}/bin:${PATH}" |
| 53 | + |
| 54 | +ENV TZDIR=/usr/share/zoneinfo |
| 55 | +RUN cp /usr/share/zoneinfo/Etc/UTC /etc/localtime |
| 56 | + |
| 57 | +# pandas doesn't provide wheels for aarch64 yet, so we have to install nightly Cython |
| 58 | +# along with the rest of pandas' build dependencies and disable build isolation |
| 59 | +COPY python/requirements-wheel-test.txt /arrow/python/ |
| 60 | +RUN python -m pip install \ |
| 61 | + --pre \ |
| 62 | + --prefer-binary \ |
| 63 | + --extra-index-url "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" \ |
| 64 | + Cython numpy |
| 65 | +RUN python -m pip install "meson-python==0.13.1" "meson==1.2.1" wheel "versioneer[toml]" ninja |
| 66 | +RUN python -m pip install --no-build-isolation -r /arrow/python/requirements-wheel-test.txt |
0 commit comments