无法找到软件包python

时间:2020-01-07 07:04:52

标签: docker ubuntu dockerfile

我正在尝试在ubuntu映像上运行以下Dockerfile内容。

FROM ubuntu
RUN apt-get update
RUN apt-get install -y python
RUN apt-get install -y python-pip
RUN pip install flask
COPY app.py /opt/app.py
ENTRYPOINT FLASK_APP=/opt/app.py flask run --host=0.0.0.0

但是我在第3层出现以下错误。

Step 1/7 : FROM ubuntu
---> 549b9b86cb8d
Step 2/7 : RUN apt-get update
---> Using cache
---> 78d87d6d9188
Step 3/7 : RUN apt-get install -y python
---> Running in a256128fde51
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package python

尽管我分别运行以下命令

sudo apt-get install -y python

已成功安装。

有人可以帮我吗?

注意:我正在组织代理工作。

4 个答案:

答案 0 :(得分:2)

在python安装教程中,Debian的软件包名称为python3.x。 我认为这是您的情况。我在Docker上进行了测试,这是正确的配置

看起来像

来自ubuntu:20.04

运行apt-get update && apt-get -y install python3.8 python3.8-dev

答案 1 :(得分:1)

我觉得您应该使用Python3的映像而不是使用ubuntu然后安装它。

FROM python:3

RUN apt-get update && apt-get install -y python3-pip #You don't need to install pip, because it is already there in python's image

RUN pip install -r requirements.txt

COPY . /usr/src/apps #This you can change

WORKDIR /usr/src/apps/ #this as well

CMD ["python","app.py"]

答案 2 :(得分:1)

"stylelint": {
"extends": "stylelint-config-recommended",
"rules": {
  "at-rule-no-unknown": null
}

您应按照以下相同的RUN指令运行Step 2/7 : RUN apt-get update ---> Using cache apt-get update

apt-get install

Dockerfile中的每条指令将在映像中创建单独的层,并缓存这些层。因此 RUN apt-get update && apt-get install -y python 可能仅使用缓存,甚至不运行。您的情况也是如此。您可以在日志中看到第apt-get update行。您可以使用---> Using cache使docker重建所有层而无需使用缓存。

您可以改为使用docker build --no-cache官方映像作为基本映像来运行python应用程序。

答案 3 :(得分:0)

尝试以下方法,它对我有用

apt-get install python3-pip

然后为了安装烧瓶,你将不得不使用

pip3 install flask