我正在使用此 Dockerfile 部署到 App Engine 柔性環境。
FROM gcr.io/google-appengine/python
RUN apt-get -y update && apt-get -y upgrade\
&& apt-get install -y software-properties-common \
&& add-apt-repository -y ppa:ubuntugis/ppa \
&& add-apt-repository -y ppa:deadsnakes/ppa \
&& apt-get -y update && apt-get -y upgrade\
&& apt-get -y install python3.8 python3.8-distutils python3.8-venv \
gdal-bin libgdal-dev python3-gdal \
&& apt-get autoremove -y \
&& apt-get autoclean -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN virtualenv /env -p python3.8
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
...
我已經使用此配置至少一年了,并定期部署到 GCP。截至今天早上,當我嘗試部署時,出現以下錯誤:
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package python3.8
E: Couldn't find any package by glob 'python3.8'
E: Couldn't find any package by regex 'python3.8'
E: Unable to locate package python3.8-distutils
E: Couldn't find any package by glob 'python3.8-distutils'
E: Couldn't find any package by regex 'python3.8-distutils'
E: Unable to locate package python3.8-venv
E: Couldn't find any package by glob 'python3.8-venv'
E: Couldn't find any package by regex 'python3.8-venv'
The command '/bin/sh -c apt-get -y update && apt-get -y upgrade
&& apt-get install -y software-properties-common
&& add-apt-repository -y ppa:ubuntugis/ppa
&& add-apt-repository -y ppa:deadsnakes/ppa
&& apt-get -y update
&& apt-get -y upgrade
&& apt-get -y install python3.8 python3.8-distutils python3.8-venv gdal-bin libgdal-dev python3-gdal
&& apt-get autoremove -y
&& apt-get autoclean -y
&& apt-get clean
&& rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 100
我不確定是否要更改我的 Python 版本,因為某些包使用 Python3.8。
提前感謝您提供的任何幫助。
uj5u.com熱心網友回復:
根據 Google 的檔案,您還需要在包含該app.yaml檔案的同一目錄中添加一個 Dockerfile。為了構建 Python 容器,Google 提供了這個基礎鏡像:

Python 運行時預裝了 Python 2.7.9 和 Python 3.7.2。如果需要,您可以自定義 Dockerfile 以安裝其他版本或替代解釋器。您可以在創建虛擬環境時在應用程式的 Dockerfile 中指定是使用 Python 2 還是 Python 3:
蟒蛇 3
運行 venv /env -p python3.7
Python 2(隱式)
運行虛擬環境 /env
Python 2(顯式)
運行 virtualenv /env -p python2.7
以下是有關Python 運行時、App Engine 柔性環境、Python 3 運行時環境的更多資訊。
uj5u.com熱心網友回復:
就我而言,我使用的是 Ubuntu 16.04,而 deadsnakes 不再支持 Python3.8。見https://github.com/deadsnakes/issues/issues/195
我將 Docker 更改為使用FROM ubuntu:bionic,這允許 Docker 安裝 Python3.8。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/439032.html
標籤:python-3.x 码头工人 谷歌应用引擎
