Docker复制,复制整个根目录而不是子目录

时间:2019-08-07 02:03:06

标签: python docker docker-compose

这是目前我的目录设置方式。

.
|-src
|--producer
|---Dockerfile
|---requirements.txt
|---main.py
|--consumer
|---*same files as producer*
|-.env
| docker-compose.yml

这里是生产者Dockerfile(对于消费者,只需将生产者更改为消费者):

FROM python:3.7

COPY requirements.txt /opt/pip/requirements.txt
RUN pip install -r /opt/pip/requirements.txt

COPY . /app/
WORKDIR /app/src/producer

CMD python main.py

这是我的docker-compose设置。

version: '3'
services:
    rabbit:
        hostname: rabbit
        image: rabbitmq:3-management
        ports:
            - "5673:15672"
            - "5672:5672"
        env_file:
            - .env
    producer:
        build:
            context: ./src/producer
            dockerfile: Dockerfile
        volumes:
            - .:/app
        depends_on:
            - rabbit
        env_file:
            - .env
    consumer:
        build:
            context: ./src/consumer
            dockerfile: Dockerfile
        volumes:
            - .:/app
        depends_on:
            - rabbit
        env_file:
            - .env

正如您在Dockerfile中看到的那样,我不得不将工作目录更改为/app/src/[producer/consumer],因为每当我必须运行main.py python脚本时,我都会收到一个不存在的错误。根据我观察到的登录到特定生产者或消费者容器的bash的记录,似乎复制了根目录,而不是复制docker-compose.yml中定义的子目录/上下文。

关于我做错了什么的任何线索吗? 我正在使用Windows计算机,如果这样做会导致任何问题。 我已经尝试过删除所有内容并从头开始构建方法,只是要确保罪魁祸首是没有缓存的容器/命令等。为了防万一,我什至没有重新启动Docker桌面。

0 个答案:

没有答案