2

我不明白为什么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
4

2 回答 2

2

因为如果我们查看特使 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/*
...

默认情况下有哪些python-3.5.2

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

于 2019-02-15T16:48:21.340 回答
2

是一个使用 Python 3.6 的 docker 示例

基本上它使用另一个存储库。此链接上的更多信息。

但是你可以使用 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
于 2019-02-15T16:46:01.383 回答