|
| 1 | +# This dockerfile simulates a user installation that first |
| 2 | +# builds PySR for Python 3.9, and then upgrades to Python 3.10. |
| 3 | +# Normally this would cause an error when installing PyCall, so we want to |
| 4 | +# ensure that PySR can automatically patch things. |
| 5 | +FROM debian:bullseye-slim |
| 6 | + |
| 7 | +ENV DEBIAN_FRONTEND=noninteractive |
| 8 | + |
| 9 | +# Install juliaup and pyenv: |
| 10 | +RUN apt-get update && apt-get install -y curl git build-essential \ |
| 11 | + libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ |
| 12 | + libncurses5-dev libncursesw5-dev xz-utils libffi-dev liblzma-dev && \ |
| 13 | + apt-get clean && \ |
| 14 | + rm -rf /var/lib/apt/lists/* |
| 15 | + |
| 16 | +# Install juliaup: |
| 17 | +RUN curl -fsSL https://install.julialang.org | sh -s -- -y |
| 18 | + |
| 19 | +# Install pyenv: |
| 20 | +RUN curl -fsSL curl https://pyenv.run | sh && \ |
| 21 | + echo 'export PATH="/root/.pyenv/bin:$PATH"' >> ~/.bashrc && \ |
| 22 | + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc && \ |
| 23 | + echo 'eval "$(pyenv init -)"' >> ~/.bashrc && \ |
| 24 | + echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc |
| 25 | + |
| 26 | +# Default to using bash -l: |
| 27 | +SHELL ["/bin/bash", "-l", "-c"] |
| 28 | + |
| 29 | +RUN juliaup add 1.8 && juliaup default 1.8 |
| 30 | +RUN pyenv install 3.9.2 && pyenv global 3.9.2 |
| 31 | +RUN python3 -m pip install --upgrade pip |
| 32 | + |
| 33 | +# Get PySR source: |
| 34 | +WORKDIR /pysr |
| 35 | +ADD ./requirements.txt /pysr/requirements.txt |
| 36 | +RUN python3 -m pip install -r /pysr/requirements.txt |
| 37 | + |
| 38 | +ADD ./setup.py /pysr/setup.py |
| 39 | +ADD ./pysr/ /pysr/pysr/ |
| 40 | + |
| 41 | +# First install of PySR: |
| 42 | +RUN python3 -m pip install . |
| 43 | +RUN python3 -m pysr install |
| 44 | + |
| 45 | +# Change Python version: |
| 46 | +RUN pyenv install 3.10 && pyenv global 3.10 && pyenv uninstall -f 3.9.2 |
| 47 | +RUN python3 -m pip install --upgrade pip |
| 48 | + |
| 49 | +# Second install of PySR: |
| 50 | +RUN python3 -m pip install . |
| 51 | +RUN rm -r ~/.julia/environments/pysr-* |
| 52 | +RUN python3 -m pysr install |
0 commit comments