【问题标题】:Docker installed python 3.5.2 instead of python 3.6Docker 安装了 python 3.5.2 而不是 python 3.6
【发布时间】:2019-02-15 16:19:39
【问题描述】:

我不明白为什么安装了 python 3.5.2 而不是 python 3.6。所以我无法执行我的 python 文件,因为我使用了仅在 python 3.6 中可用的 f 字符串文字语法。

也许有人可以帮助我?

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 docker envoyproxy


【解决方案1】:

因为如果我们查看envoy docker image,我们会看到:

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 安装它,或者构建您自己的映像。

【讨论】:

    【解决方案2】:

    This 是一个使用 Python 3.6 的 docker 示例

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

    但是你可以使用python 3.6的官方docker镜像。

    不要使用这个:

    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
    

    【讨论】:

    • 那之后你建议如何安装envoyproxy/envoy
    • 首先我会尝试使用其他存储库安装python 3.6,因为安装过程似乎更简单。
    • 但是你可以尝试打开创建envoyproxy docker镜像的do dockerfile,然后进行安装,但是我搜索了一下,它是在创建imagem时构建的,每次你更改版本你需要重建特使,这可能需要一些时间。
    • 你错过了重点:安装任何版本的 python 都比构建 envoyproxy 容易得多。虽然它一定不会太复杂
    • 你可以编辑我的帖子并添加使用 python 3.6 docker 镜像和安装 envoy 的选项,所以另一个有同样问题的人会有两个选项。
    猜你喜欢
    • 2020-01-06
    • 2018-07-30
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    相关资源
    最近更新 更多