Docker установил python 3.5.2 вместо python 3.6 - PullRequest
0 голосов
/ 15 февраля 2019

Я не понимаю, почему установлена ​​python 3.5.2, а не python 3.6.Поэтому я не могу выполнить свой файл python, потому что я использую строковый буквальный синтаксис, который доступен только в python 3.6.

Может быть, кто-то может мне помочь?

FROM envoyproxy/envoy:latest

RUN apt-get update && apt-get -q install -y \
    curl \
    software-properties-common \
    python-software-properties
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt-get update && apt-get -q install -y \
    python3.6 \
    python3-pip
RUN python3.6 --version && pip3 --version
RUN pip3 install gunicorn
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
RUN mkdir /code
COPY . /code
WORKDIR /code

RUN pip3 install --no-cache-dir -r ./requirements.txt
ADD ./boot.sh /usr/local/bin/boot.sh
RUN chmod u+x /usr/local/bin/boot.sh

ENTRYPOINT /usr/local/bin/boot.sh

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Потому что, если мы посмотрим на изображение посланника посланника , мы увидим:

FROM ubuntu:16.04

RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y ca-certificates \
    && apt-get autoremove -y \
    && apt-get clean \
    && rm -rf /tmp/* /var/tmp/* \
    && rm -rf /var/lib/apt/lists/*
...

Которые имеют python-3.5.2 по умолчанию.

Если вам нужно python-3.6 -установите его с помощью apt или создайте свой собственный образ.

0 голосов
/ 15 февраля 2019

Этот является примером докера, который использует Python 3.6

В основном он использует другой репозиторий.Больше информации на по этой ссылке .

Но U может использовать официальный образ докера python 3.6.

Не используйте это:

FROM envoyproxy/envoy:latest

Используйте это вместо:

FROM python:3.6-stretch

Таким образом, пример, который вы передали, стал бы:

FROM python:3.6-stretch

RUN python3.6 --version && pip3 --version
RUN pip3 install gunicorn
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
RUN mkdir /code
COPY . /code
WORKDIR /code

RUN pip3 install --no-cache-dir -r ./requirements.txt
ADD ./boot.sh /usr/local/bin/boot.sh
RUN chmod u+x /usr/local/bin/boot.sh

ENTRYPOINT /usr/local/bin/boot.sh
...