Проблема в том, что псевдоним существует только для этого промежуточного слоя в изображении. Попробуйте следующее:
FROM ubuntu
RUN apt-get update && apt-get install python3-pip -y
RUN alias python=python3
Тестирование здесь:
❰mm92400❙~/sample❱✔≻ docker build . -t testimage
...
Successfully tagged testimage:latest
❰mm92400❙~/sample❱✔≻ docker run -it testimage bash
root@78e4f3400ef4:/# python
bash: python: command not found
root@78e4f3400ef4:/#
Это связано с тем, что новый сеанс bash запускается для каждого слоя, поэтому псевдоним будет потерян в следующих слоях. .
Чтобы сохранить стабильный псевдоним, вы можете использовать символическую ссылку, как python в их официальном изображении :
FROM ubuntu
RUN apt-get update && apt-get install python3-pip -y
# as a quick note, for a proper install of python, you would
# use a python base image or follow a more official install of python,
# changing this to RUN cd /usr/local/bin
# this just replicates your issue quickly
RUN cd "$(dirname $(which python3))" \
&& ln -s idle3 idle \
&& ln -s pydoc3 pydoc \
&& ln -s python3 python \ # this will properly alias your python
&& ln -s python3-config python-config
RUN python -m pip install -r requirements.txt
Обратите внимание на использование python3-pip
пакет в комплекте пипс. При вызове pip
лучше всего использовать синтаксис python -m pip
, поскольку он гарантирует, что вызываемый вами пип связан с вашей установкой python:
python -m pip install -r requirements.txt