docker-撰写错误 - 无法读取文件
docker-compose error - unable to read file
我有一个简单的 docker 文件用于测试 Django 应用程序。我是 运行 docker-compose root 用户,我可以读取 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
我的 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 构建在与您的主机分开的容器中执行。容器有自己的文件系统,并且不知道主机系统上的文件。
您可以使用
将文件复制到容器中
COPY /path/on/host /path/on/container
在Dockerfile
目前pip需要文件,但是还没有添加。
在您的情况下,您可以将底部的 ADD
行移动到 pip 命令之前。它也将是 better practice to use COPY
,但这不是错误。
像这样:
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。
未来搜索者需要注意的一个问题是该路径是相对于 docker-compose
正在执行的当前 Dockerfile
的目录。
这意味着如果你的文件和你的docker-compose.yml
在同一层,而你的Dockerfile
在另一个目录,你应该把它移动到Dockerfile
所在的目录.
我有一个简单的 docker 文件用于测试 Django 应用程序。我是 运行 docker-compose root 用户,我可以读取 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
我的 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 构建在与您的主机分开的容器中执行。容器有自己的文件系统,并且不知道主机系统上的文件。
您可以使用
将文件复制到容器中COPY /path/on/host /path/on/container
在Dockerfile
目前pip需要文件,但是还没有添加。
在您的情况下,您可以将底部的 ADD
行移动到 pip 命令之前。它也将是 better practice to use COPY
,但这不是错误。
像这样:
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。
未来搜索者需要注意的一个问题是该路径是相对于 docker-compose
正在执行的当前 Dockerfile
的目录。
这意味着如果你的文件和你的docker-compose.yml
在同一层,而你的Dockerfile
在另一个目录,你应该把它移动到Dockerfile
所在的目录.