Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 找不到python包_Docker_Ubuntu_Dockerfile - Fatal编程技术网

Docker 找不到python包

Docker 找不到python包,docker,ubuntu,dockerfile,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 但是我在第三层得到了下面的错误 Ste

我试图在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
但是我在第三层得到了下面的错误

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安装-y python

它已成功安装

谁能帮帮我吗


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

我觉得你更应该使用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"]
您应该在相同的运行指令中运行
apt get update
apt get install
,如下所示

 RUN apt-get update && apt-get install -y python
Dockerfile中的每个指令都将在映像中创建单独的层,并且这些层将被缓存。因此,
apt get update
可能只是使用缓存,甚至不运行。你的情况也是如此。您可以在日志中看到行
-->Using cache
。您可以使用
docker build--no cache
让docker在不使用cache的情况下重建所有层


您可以只使用
python:3
official image作为基本映像来运行python应用程序

在python安装教程中,有一个用于Debian的包名python3.x。 我想这是你的情况。我在Docker中测试了它,这是正确的配置

看起来像

来自ubuntu:20.04


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

apt-get-install python3-pip
然后,为了安装烧瓶,您必须使用

pip3安装烧瓶

尝试在没有缓存的情况下构建
——没有缓存
为什么需要从ubuntu构建?docker已经有了一个Python映像
 RUN apt-get update && apt-get install -y python