【问题标题】:Update Envoy Dockerfile base image to python 3.6+将 Envoy Dockerfile 基础镜像更新为 python 3.6+
【发布时间】:2019-07-11 19:43:04
【问题描述】:

我尝试将 envoy 基础镜像中的 python 版本更新为python-3.6。但它不起作用。

这是我必须使用的基本映像(Envoy 代理),默认情况下具有 python-3.5.2 https://github.com/envoyproxy/envoy/blob/master/ci/Dockerfile-envoy-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/*
...

这是我使用 deadsnake/ppa apt-get update 的版本

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 --version && pip3 --version

RUN pip3 install gunicorn
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
COPY requirements.txt .
RUN pip3 install --no-cache-dir -r ./requirements.txt
RUN mkdir /code
WORKDIR /code
COPY . /code

ADD ./boot.sh /usr/local/bin/boot.sh
RUN chmod u+x /usr/local/bin/boot.sh

ENTRYPOINT /usr/local/bin/boot.sh

非常感谢您的帮助或一些提示,以便我自己找到解决方案。

【问题讨论】:

  • 啊哈。所以看起来你没有完全解决that problem“但它不起作用” - 请详细说明:a)python3.6 未安装,b)python3.6 无法运行?
  • 嗨,亚历克斯,再次感谢您的帮助。如果我使用“docker run -it sh”运行容器并查找已安装的版本,则会安装 python 3.6,但是当我键入“python3”时,会执行 python 3.5.2。抱歉,我知识不多。

标签: python docker envoyproxy


【解决方案1】:

python3 和 pip3 exec 指向系统 python3.5

我建议将pip安装到python3.6上,始终使用python3.6和pip3.6来引用新版本。

RUN curl https://bootstrap.pypa.io/get-pip.py | python3.6
RUN python3.6 --version && pip3.6 --version
RUN pip3.6 install --no-cache-dir -r ./requirements.txt

【讨论】:

    【解决方案2】:

    所以我用@pbacterio 建议更新了 Dockerfile,它现在可以工作了!非常感谢

    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 curl https://bootstrap.pypa.io/get-pip.py | python3.6
    RUN python3.6 --version && pip3.6 --version
    
    COPY requirements.txt .
    RUN pip3.6 install --no-cache-dir -r ./requirements.txt
    RUN pip3.6 install gunicorn
    ENV LANG C.UTF-8
    ENV LC_ALL C.UTF-8
    RUN mkdir /code
    WORKDIR /code
    COPY . /code
    
    ADD ./boot.sh /usr/local/bin/boot.sh
    RUN chmod u+x /usr/local/bin/boot.sh
    
    ENTRYPOINT /usr/local/bin/boot.sh
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-23
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 2018-05-05
      • 1970-01-01
      相关资源
      最近更新 更多