在Docker构建期间无法复制文件

时间:2019-10-10 16:10:24

标签: docker

我正在尝试对基本的Django应用程序进行docker化,但是无法安装该卷。

Dockerfile:

FROM python:3.7.4-alpine
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

docker-compose.yml:

version: '3.7'

services:
  backend:
    build: ./backend
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ../backend-code:/code

错误消息:

Building backend
Step 1/7 : FROM python:3.7.4-alpine
 ---> 39fb80313465
Step 2/7 : ENV PYTHONUNBUFFERED 1
 ---> Using cache
 ---> 6b971cbdc65e
Step 3/7 : RUN mkdir /code
 ---> Using cache
 ---> 598a375cf3c6
Step 4/7 : WORKDIR /code
 ---> Using cache
 ---> a222aaeaf660
Step 5/7 : COPY requirements.txt /code/
ERROR: Service 'backend' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder565677268/requirements.txt: no such file or directory

我已通过以下方式验证:

winpty docker run --rm -it 123456 sh

该/ code文件夹为空。我也尝试为目标使用不同的文件夹名称,但是它们不会出现在容器内。我什至用不存在的卷目录(-../nosuchdirectory:/code)进行了测试,而docker-compose没有给出任何错误。

文件夹结构:

.
├── docker
|   ├── docker-compose.yml
|   └── backend
|       └── Dockerfile
├── backend-code
|   ├── requirements.txt
|   ├── [django files]

我正在Windows 10上运行代码。 Docker Desktop社区2.1.0.3稳定。 驱动器已共享,并且“ docker run --rm -v c:/ Users:/ data alpine ls / data”起作用。

1 个答案:

答案 0 :(得分:0)

错误:服务“后端”无法构建:COPY失败:stat /var/lib/docker/tmp/docker-builder565677268/requirements.txt:无此类文件或目录

这是您遇到的错误。在此行失败

COPY requirements.txt /code/

将其更改为

COPY ../../backend-code/requirements.txt /code/

或将requirements.txt移至后端目录

.
├── docker
|   ├── docker-compose.yml
|   └── backend
|       └── Dockerfile
        --- requirements.txt <--
├── backend-code
|   ├── [django files]

并使用

COPY ./requirements.txt /code/