Uses Pyenv to build Python 2 from source, while keeping Debian for needed packages. Might move to two build stages in the future. ref: N25B-284
38 lines
1.6 KiB
Docker
38 lines
1.6 KiB
Docker
FROM debian:trixie AS build
|
|
|
|
WORKDIR /app
|
|
|
|
COPY requirements.txt .
|
|
|
|
RUN apt-get update; apt-get install -y portaudio19-dev libzmq3-dev make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl git libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev alsa-utils musl-dev
|
|
|
|
ENV HOME="/root"
|
|
|
|
RUN git clone --depth=1 https://github.com/pyenv/pyenv.git ${HOME}/.pyenv
|
|
ENV PYENV_ROOT="${HOME}/.pyenv"
|
|
ENV PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"
|
|
|
|
ENV PYTHON_VERSION=2.7.18
|
|
RUN pyenv install ${PYTHON_VERSION}; pyenv global ${PYTHON_VERSION}
|
|
|
|
RUN python -m pip install virtualenv; python -m virtualenv .venv
|
|
RUN /usr/bin/env bash -c 'source .venv/bin/activate && pip install -r ./requirements.txt'
|
|
# RUN eval "$(pyenv init - bash)"; pyenv install 2.7; pyenv shell 2.7; python -m pip install virtualenv; python -m virtualenv .venv; source .venv/bin/activate; pip install -r requirements.txt
|
|
|
|
# FROM debian:trixie
|
|
#
|
|
# WORKDIR /app
|
|
#
|
|
# COPY --from=build /app/.venv /app/.venv
|
|
|
|
WORKDIR /app/.venv/lib/python2.7/site-packages
|
|
RUN /usr/bin/env bash -c 'apt-get install -y wget && wget https://community-static.aldebaran.com/resources/2.5.10/Python%20SDK/pynaoqi-python2.7-2.5.7.1-linux64.tar.gz && tar xvfz ./pynaoqi-python2.7-2.5.7.1-linux64.tar.gz && rm pynaoqi-python2.7-2.5.7.1-linux64.tar.gz'
|
|
RUN echo /app/.venv/lib/python2.7/site-packages/pynaoqi-python2.7-2.5.7.1-linux64/lib/python2.7/site-packages/ > pynaoqi-python2.7.pth
|
|
WORKDIR /app
|
|
|
|
COPY . .
|
|
|
|
ENV PYTHONPATH=src
|
|
|
|
CMD [ "/bin/bash", "-c", "source .venv/bin/activate && python -m robot_interface.main --qi-url tcp://172.17.0.1:43305" ]
|