Сбой развертывания docker python3
Я развернул контейнер docker с этим Dockerfile для моего Django-rest-приложения:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /app WORKDIR /app COPY requirements.txt /app/ COPY . /app/
RUN /usr/local/bin/python -m pip install --upgrade pip RUN pip install -r requirements.txt
Однако docker не устанавливает python3 на мою виртуальную машину, вместо этого он устанавливает python2. Есть ли способ убедиться, что docker устанавливает правильный python?
Спасибо,
Краткий ответ
Python 3 развернут в экземпляре образа, а не на виртуальной машине.
Как проверить, хорошо ли используется python 3 в вашем изображении :
- Запуск докера
docker run --rm python:3 /bin/bash -c "python --version && pip --version" # Python 3.10.0 # pip 21.2.4 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
- Простой dockerfile
FROM python:3 ENV PYTHONUNBUFFERED 1 RUN python --version RUN pip --version
- Вывод, пожалуйста, смотрите версию python и версию pip
Sending build context to Docker daemon 41.47kB Step 1/4 : FROM python:3 ---> 618fff2bfc18 Step 2/4 : ENV PYTHONUNBUFFERED 1 ---> Running in 421cfb4445ad Removing intermediate container 421cfb4445ad ---> acc0f2c36571 Step 3/4 : RUN python --version ---> Running in 399632a39d32 Python 3.10.0 Removing intermediate container 399632a39d32 ---> 3f78b14a2645 Step 4/4 : RUN pip --version ---> Running in 5b541e3ff5a0 pip 21.2.4 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
Ваш dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY . .
RUN pip install --upgrade pip && pip install -r requirements.txt
- Как использовать его с docker run
docker run <image id/name>
Дополнительная информация :
Если вы хотите проверить версию Python внутри вашего контейнера, вы можете сделать следующее:
$ docker run -it <container_name_or_hash> bash
когда вы "внутри", бегите
python --version