Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker安装了python 3.5.2而不是python 3.6_Python_Docker_Envoyproxy - Fatal编程技术网

Docker安装了python 3.5.2而不是python 3.6

Docker安装了python 3.5.2而不是python 3.6,python,docker,envoyproxy,Python,Docker,Envoyproxy,我不明白为什么安装了python3.5.2,而不是python3.6。因此,我无法执行python文件,因为我使用的是f字符串文字语法,该语法仅在Python3.6中可用 也许有人能帮我 FROM envoyproxy/envoy:latest RUN apt-get update && apt-get -q install -y \ curl \ software-properties-common \ python-software-properti

我不明白为什么安装了
python3.5.2
,而不是
python3.6
。因此,我无法执行python文件,因为我使用的是f字符串文字语法,该语法仅在
Python3.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
是一个使用Python 3.6的docker示例

基本上,它使用另一个存储库。更多信息请访问

但是你可以使用Python3.6的官方docker镜像

请勿使用此选项:

FROM envoyproxy/envoy:latest
改用这个:

FROM python:3.6-stretch
因此,u通过的示例将变成:

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
因为如果我们看一下我们会看到:

默认情况下,它们具有
python-3.5.2


如果您需要
python-3.6
,请使用apt安装它,或者构建您自己的映像。

请注意,特使映像是您误解的原因。之后您建议如何安装?首先,我会尝试使用其他存储库安装python 3.6,因为安装过程似乎更简单。但你可以尝试打开创建envoyproxy docker映像的dockerfile并进行安装,但我搜索了一点,它是在创建imagem时构建的,每次更改envoy的版本时,你都需要重新构建,这可能需要一些时间。您没有抓住要点:安装任何版本的python都比构建
envoyproxy
容易得多。虽然这一定不是很复杂,但tooU可以编辑我的帖子,并添加使用Python3.6 docker映像和安装特使的选项,因此另一个有相同问题的人将有两个选项。
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/*
...