当前位置: 首页 > 知识库问答 >
问题:

如何使用pip作为docker构建的一部分来安装本地包?

邢凯歌
2023-03-14

我有一个包,我想构建到一个docker映像,这取决于我系统上的一个相邻包。

我的requirements.txt如下所示:

-e ../other_module
numpy==1.0.0
flask==0.12.5

当我在virtualenv中调用pip install-r requirements.txt时,这很好。但是,如果我在Dockerfile中调用它,例如:

ADD requirements.txt /app
RUN pip install -r requirements.txt

共有1个答案

归俊杰
2023-03-14

首先,需要将other_module添加到Docker映像中。否则,pip install命令将无法找到它。但是,根据文档,您不能添加在Dockerfile目录之外的目录:

路径必须在构建的上下文中;您不能添加../something/something,因为docker构建的第一步是将上下文目录(和子目录)发送到docker守护进程。

因此,必须将Other_Module目录移动到与Dockerfile相同的目录中,即您的结构应该类似于

.
├── Dockerfile
├── requirements.txt
├── other_module
|   ├── modue_file.xyz
|   └── another_module_file.xyz
ADD /other_module /other_module
ADD requirements.txt /app
WORKDIR /app
RUN pip install -r requirements.txt
 类似资料:
  • 我希望能够在 B 的任何文件中执行:。A 和 B 是两个不同的项目/包,它们是本地的。 如何构建、安装和升级A,以便B能够调用A模块?如何使用执行此操作?而使用?

  • 我正在构建一个python项目--。我想使用Github操作来自动化一些linting 为此,我使用了Github推荐的python actions starter工作流——python应用程序的一个轻微修改。 在作业中的“安装依赖项”步骤中,我遇到了一个错误。这是因为pip试图安装我的本地软件包,但失败了。 如果[-f requirements.txt], 相应的错误是: 很可能,该作业无法安装

  • 如何安装卷来存储我的. m2存储库,这样我就不必在每次构建时下载互联网? 我的构建是一个多阶段构建:

  • 我试图安装flake8包使用pip3,它似乎拒绝安装,因为已经安装在一个本地位置。 如何强制全局安装(系统级)? 请注意,我更喜欢一个通用的解决方案(应该在Debian、OSX甚至Windows上工作),一个应该在任何平台上使用的解决方案,所以我不想自己指定目标。 出于某种奇怪的原因,它的行为就像我已经指定了,而在我的情况下,我没有指定。 我能够在全球范围内安装包的唯一方法是首先删除它,然后在此之

  • 问题内容: 我要安装pip。它应支持Python 3,但需要setuptools,该工具仅适用于Python 2。 如何使用Python 3安装pip? 问题答案: 编辑:手动安装和使用setuptools不再是标准过程。 如果你运行的是Python 2.7.9+或Python 3.4+ 恭喜,你应该已经pip安装了。如果你不这样做,请继续阅读。 如果你正在运行类似Unix的系统 pip如果你的P

  • 问题内容: 我是一个有点新的和一般的。 我已经在服务器以及本地开发环境上设置了virtualenv。 在服务器上,程序包运行良好。 但是,在我的本地计算机上似乎根本无法正常工作。 我通常只是像这样在virtual-env中安装它: 不过,这会获得最新版本,这是第一次导致使用最新版本的问题。 所以我像这样卸载了版本5 alpha: 但是现在我不知道如何再次获得工作版本0.4.0 Beta。我试过了,