使用Docker上的需求文件构建pipenv



我在构建烧瓶应用程序的码头化版本时遇到了一个大问题。起初,我无法从容器内部提供的requirements.txt文件中安装任何依赖项。这是一个文件夹结构:

.
├── app
│   ├── ASRModule.py
│   ├── auth.py
│   ├── config
│   ├── files
│   ├── index.py
│   ├── __init__.py
│   ├── Interval.py
│   ├── MySQLDBHandler.py
│   ├── __pycache__
│   ├── SIPCall.py
│   ├── SOAPClient.py
│   ├── static
│   ├── stats.py
│   ├── templates
│   ├── TrunkOccupation.py
│   └── TrunkTraffic.py
├── Dockerfile
├── instance
└── requirements.txt

我想在我的Dockerfile上建造一艘集装箱船:

FROM python:3.5.2-alpine
COPY . /flask
WORKDIR /flask
RUN pip install --upgrade pip
RUN pip install pipenv
CMD ["pipenv", "shell", "testshell"]
CMD ["pipenv","install", "-r ./requirements.txt"]

据我所知,在完成构建后,除了上面一个名为flash的目录外,我应该有相同的文件夹结构,该目录将保存上述所有文件和目录。我还应该有一个名为testshell的虚拟机,requirements.txt中的所有依赖项都应该安装到该虚拟机。到目前为止,一切都很顺利。然而,令我失望的是,在我尝试运行这个容器后,我看到了一个正确构建的虚拟环境和这样的错误:

需求文件似乎不存在。请确保该文件存在于您的项目目录中,或者您提供了正确的路径。

我为需求文件尝试了各种路径,但没有任何帮助。我将感谢任何帮助,这将指出我在哪里犯了错误。

错误很简单,但由于错误消息,很难注意到-它没有说明它试图加载哪个文件。尝试加载的文件是'/flask/ ./requirements.txt',即位于名为空间的子目录中的requirements.txt-c.f,带有来自pip:的错误消息

% "pip" "install" "-r ./requirements.txt"
Could not open requirements file: 
[Errno 2] No such file or directory: ' ./requirements.txt'

修复方法是要么删除空格,要么正确拆分参数:

CMD ["pipenv", "install", "-r./requirements.txt"]

CMD ["pipenv", "install", "-r", "./requirements.txt"]

两者都应该起作用。


我建议您向pipenv问题跟踪器投诉错误消息。

最新更新