我尝试在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
型
虽然我单独运行下面的命令时,
第一个月
已经成功安装了。
我该如何解决此问题?
注意:我在一个组织代理后面工作。
4条答案
按热度按时间xzv2uavs1#
字符串
您应该在同一个RUN指令中运行
apt-get update
和apt-get install
,如下所示:型
Dockerfile中的每条指令都会在镜像中创建一个单独的层,并且这些层会被缓存。所以
apt-get update
可能只使用该高速缓存,甚至不会运行。在你的例子中也发生了这种情况。你可以在日志中看到---> Using cache
行。你可以使用docker build --no-cache
让Docker在不使用缓存的情况下重建所有层。您可以使用
python:3
官方镜像作为基础镜像来运行Python应用程序。qojgxg4l2#
在Python安装教程中,有一个包名为Python 3.x for Debian。我想这是你的情况。我在Docker中测试过,这是正确的配置。
它看起来像
来自 ubuntu:20.04:
运行
apt-get update && apt-get -y install python3.8 python3.8-dev
vshtjzan3#
我觉得你应该使用Python 3的镜像,而不是使用Ubuntu然后安装它。
字符串
bmvo0sr54#
试试下面的方法,对我很有效。
字符串
然后,为了安装Flask,您必须使用
型