docker – 撰写错误 – 无法读取文件
我有一个简单的docker文件,用于testingdjango应用程序。 我正在运行docker-compose作为root用户,我可以读取requirements.txt文件,但泊坞窗是错误的。 有什么build议?
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
我的docker文件。
FROM python:2.7 ENV PYTHONUNBUFFERED 1 WORKDIR /app/test-project/ RUN pip install -r /app/test-project/requirements.txt ADD . /app/test_project/
Docker构build在与主机分离的容器中执行。 容器有它自己的文件系统,并且不知道主机系统上的文件。
您可以使用复制文件到容器
COPY /path/on/host /path/on/container
在Dockerfile
目前pip需要文件,但是还没有被添加。
在你的情况下,你可以把底部的ADD
行移到pip命令之前。 使用COPY
也是更好的做法 ,但那不是bug。
喜欢这个:
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/到/testing项目。
需要注意的一个问题是,将来的search者的path是相对于Dockerfile
docker-compose
正在执行的当前Dockerfile
的目录。
这意味着如果你的文件与你的Dockerfile
docker-compose.yml
处于同一级别,并且你的Dockerfile
在另一个目录中,你应该把它移动到Dockerfile
所在的目录。