如何在Docker Build中自动创建和安装requirements.txt文件



我有一个问题:我如何在Docker构建中创建requirements.txt文件,这样我就不必在项目目录中手动更新它,同时发布新版本的应用程序?

所以,我想要的基本上是在Docker构建中构建requirements.txt文件,然后安装它。

我Dockerfile

FROM --platform=arm64 python:3.9-buster
# Initializing Project Directory
CMD mkdir /project/dir/ 
# Setting up working directory
WORKDIR /project/dir/
ENV PYTHONUNBUFFERED=1
RUN pip install --upgrade pip  
RUN pip freeze > requirements.txt
ADD ./requirements.txt ./requirements.txt                     # error occurs at this line

COPY . .
RUN pip install -r requirements.txt 

RUN chmod +x ./run.sh
ENTRYPOINT ["sh", "./run.sh"]

但不幸的是有一个错误发生:failed to compute cache key: "/requirements.txt" not found: not found.

你对实现有什么建议吗?

我相信你必须在freeze冻结它们之前将依赖项安装到你的环境中。

所以要么,
在项目目录中运行pip freeze(首选)
然后在dockerfile中执行pip install -r requirements.txt而不是pip freeze

或者添加pip install x,其中X是每个依赖项,然后冻结。

做第二个选项会有点"奇怪"。考虑到您通常希望首先构建深度列表,然后将其提供给构建环境。不是构建深度列表,而是顺序构建。

最新更新