docker 无法找到Python包

qpgpyjmq  于 2023-11-17  发布在  Docker
关注(0)|答案(4)|浏览(163)

我尝试在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


虽然我单独运行下面的命令时,
第一个月
已经成功安装了。
我该如何解决此问题?
注意:我在一个组织代理后面工作。

xzv2uavs

xzv2uavs1#

Step 2/7 : RUN apt-get update
    ---> Using cache

字符串
您应该在同一个RUN指令中运行apt-get updateapt-get install,如下所示:

RUN apt-get update && apt-get install -y python


Dockerfile中的每条指令都会在镜像中创建一个单独的层,并且这些层会被缓存。所以apt-get update可能只使用该高速缓存,甚至不会运行。在你的例子中也发生了这种情况。你可以在日志中看到---> Using cache行。你可以使用docker build --no-cache让Docker在不使用缓存的情况下重建所有层。
您可以使用python:3官方镜像作为基础镜像来运行Python应用程序。

qojgxg4l

qojgxg4l2#

在Python安装教程中,有一个包名为Python 3.x for Debian。我想这是你的情况。我在Docker中测试过,这是正确的配置。
它看起来像
来自 ubuntu:20.04
运行apt-get update && apt-get -y install python3.8 python3.8-dev

vshtjzan

vshtjzan3#

我觉得你应该使用Python 3的镜像,而不是使用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"]

字符串

bmvo0sr5

bmvo0sr54#

试试下面的方法,对我很有效。

apt-get install python3-pip

字符串
然后,为了安装Flask,您必须使用

pip3 install flask

相关问题