docker-compose错误 - 无法读取文件

时间:2015-06-07 05:46:48

标签: django docker docker-compose

我有一个简单的docker文件,用于测试django应用程序。我以root用户身份运行docker-compose,我可以读取requirements.txt文件,但是docker出错了。有什么建议吗?

root@testdeploy:/app/test-project# docker-compose build
db uses an image, skipping
Building web...
Step 0 : FROM python:2.7
 ---> 93d77aec17a0
Step 1 : ENV PYTHONUNBUFFERED 1
 ---> Using cache
 ---> 25e2164606e7
Step 2 : WORKDIR /app/test-project/
 ---> Using cache
 ---> 366c21333f1f
Step 3 : RUN pip install -r /app/test-project/requirements.txt
 ---> Running in 75599e289c5e
Could not open requirements file: [Errno 2] No such file or directory: '/app/test-project/requirements.txt'
Service 'web' failed to build: The command [/bin/sh -c pip install -r /app/test-project/requirements.txt] returned a non-zero code: 1

从命令行读取文件。

root@testdeploy:/app/test-project# head -5 /app/test-project/requirements.txt
Cheetah==2.4.4
Django==1.7
Landscape-Client==14.01
PAM==0.4.2
Pillow==2.6.1

我的泊坞文件。

FROM python:2.7
ENV PYTHONUNBUFFERED 1
WORKDIR /app/test-project/
RUN pip install -r /app/test-project/requirements.txt
ADD . /app/test_project/

2 个答案:

答案 0 :(得分:3)

docker build在与主机分开的容器中执行。容器有自己的文件系统,并不知道主机系统上的文件。

您可以使用

将文件复制到容器中

<div> <a href="/link1">link1</a> <a href="/link2">link2</a> <a href="/link3">link3</a> </div>

COPY /path/on/host /path/on/container

中的

目前pip需要文件,但尚未添加。

在您的情况下,您可以将底部的Dockerfile行移至pip命令之前。它也是better practice to use COPY,但这不是错误。

像这样:

ADD

如果仍然无效,则需要将FROM python:2.7 ENV PYTHONUNBUFFERED 1 COPY . /app/test_project/ WORKDIR /app/test-project/ RUN pip install -r /app/test-project/requirements.txt 调整为主机上正确的/ path / to / test-project。

答案 1 :(得分:0)

未来搜索者需要注意的一个问题是该路径是相对于Dockerfile正在执行的当前docker-compose的目录。

这意味着如果您的文件与docker-compose.yml处于同一级别且Dockerfile位于另一个目录中,则应将其移至Dockerfile所在的目录。< / p>