Python 容器的 Dockerfile 为什么需要这一句 "COPY requirements.txt ."

2021-04-02 19:57:17 +08:00
 qwertyegg
FROM python:3.9.2-alpine3.12

WORKDIR /usr/src/app

RUN pip install -r requirements.txt

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

我已经把文件夹映射到 /usr/src/app 里面了,文件夹包含了 requirements.txt(所以 /usr/src/app 里面也有这个文件?)

错误提示

ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

修改为官方推荐的

FROM python:3.9.2-alpine3.12

WORKDIR /usr/src/app

COPY requirements.txt .

RUN pip install -r requirements.txt

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

就能成功 build 。请问为什么在第一种情况下找不到 requirements.txt

1697 次点击
所在节点    Docker
5 条回复
Phant0m
2021-04-03 03:36:20 +08:00
默认拉取回来的镜像内是没有 requirements.txt 这个文件的,镜像只包含必要的运行环境。
julyclyde
2021-04-04 11:39:20 +08:00
“把文件夹映射”这一步是 build 步骤吗?
qwertyegg
2021-04-05 02:24:07 +08:00
@julyclyde 我是用的 docker-compose 映射的文件夹

@Phant0m 不好意思,我没说清楚。我在 docker-compose 里面已经把包含 requirement.txt 和.py 的文件夹映射到 /usr/src/app 下了
julyclyde
2021-04-05 10:20:46 +08:00
@qwertyegg 那你映射过之后 RUN ls 或者 RUN tree 一下看看里面是什么样子吧?
qwertyegg
2021-04-06 00:08:14 +08:00
@julyclyde 谢谢你的提示,我去试一试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/767653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX