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

j9per5c4  于 2023-01-25  发布在  Docker
关注(0)|答案(1)|浏览(325)

我有个问题:如何在Docker内部版本中创建requirements.txt文件,以便在发布新版本的应用程序时不必在项目目录中手动更新?
因此,我想要做的基本上是在Docker构建内部构造requirements.txt文件,然后安装它。
我的停靠文件

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.
你对实施有什么建议吗?

a8jjtwal

a8jjtwal1#

我相信您必须在freeze真正冻结依赖项之前将其安装到您的环境中。
所以要么,
在项目目录中运行pip freeze(首选)
然后在停靠文件中执行pip install -r requirements.txt而不是pip freeze
或者添加pip install x,其中X是每个依赖项,然后冻结。
考虑到您通常希望首先构建dep列表,然后将其提供给您的构建环境,而不是构建dep列表并按顺序进行构建,因此执行第二个选项可能有点“奇怪”。

相关问题