Dockerfile添加。添加错误的目录

时间:2019-01-02 03:23:23

标签: django docker

.
|-- business_logic
|   ....
|
|-- docker-compose.yml
|-- src
|   `-- backend
|       |-- Dockerfile
|       |-- manage.py
|       |-- requirements.txt
|       `-- webapp
|           |-- __init__.py
|           |-- settings.py
|           |-- urls.py
|           `-- wsgi.py
`-- utils.py

我希望Docker在运行此撰写文件时将 ./ src / backend / 复制到容器上的 / code / 中:

version: '3'

services:
  db:
    image: postgres
  web:
    build:
      context: ./src/backend/
    command: ls -l .
    volumes:
      - .:/code/
    ports:
      - "8000:8000"
    depends_on:
      - db

将Dockerfile置于后端下:

FROM python:3
ENV PYTHONUNBUFFERED 1

RUN mkdir /code
WORKDIR /code

ADD requirements.txt /code/
RUN pip install -r requirements.txt

ADD . /code/

我希望文件树或上下文中的Dockerfile位置是相对路径“”。在Dockerfile中,但好像是“。”指向docker-compose.yml所在的目录。因为输出如下:

web_1  | drwxr-xr-x 14 root root 448 Jan  2 01:51 business_logic
web_1  | -rw-r--r--  1 root root 207 Jan  2 03:10 docker-compose.yml
web_1  | drwxr-xr-x  3 root root  96 Jan  2 02:34 src
web_1  | -rw-r--r--  1 root root 657 Jan  2 01:51 utils.py

如何仅将后端文件夹下的所有内容复制到 code 中?

1 个答案:

答案 0 :(得分:2)

在docker-compose中,当您使用卷进行映射时,它正在映射当前目录(与docker-compose.yml并行),但是对于Dockerfile“”。表示相对于您设置的docker-context(./src/backend/)的当前目录。

在准备Docker映像后,创建容器卷时会导致覆盖。
提示-首先使用相同的docker-context,然后相应地调整路径。

尝试关注docker-compose.yml

    version: '3'

    services:
      db:
        image: postgres
      web:
        build:
          context: ./src/backend/
        command: ls -l .
        volumes:
          - ./src/backend/:/code/
        ports:
          - "8000:8000"
        depends_on:
          - db