2017-08-07 46 views
4

我正在关注testdriven.io上的烧瓶/码头指南。在第三部分Docker Config的第一部分中我正在按照说明将项目目录作为卷装入Docker容器中进行开发。不幸的是,按照教程中的说明不能使用docker-compose正确安装卷。相反,容器内的目录是空的。码头 - 撰写量不正确

以下是针对相关容器的Dockerfile

FROM python:3.6.1 

# set working directory 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

# add requirements (to leverage Docker cache) 
ADD ./requirements.txt /usr/src/app/requirements.txt 

# install requirements 
RUN pip install -r requirements.txt 

# add app 
ADD . /usr/src/app 

# run server 
CMD python manage.py runserver -h 0.0.0.0 

这是泊坞窗,compose.yml文件

version: '2.1' 

services: 

    users-service: 
    container_name: users-service 
    build: . 
    volumes: 
     - '.:/usr/src/app' 
    ports: 
     - 5001:5000 # expose ports - HOST:CONTAINER 

有问题的目录是/ usr/src目录/应用的用户服务容器内的目录。当我这样做:

>> docker-compose build 
>> docker-compose up -d 
>> docker-compose run users-service bash 

当我ls容器我在正确的目录(/ usr/src目录/应用程序)内,但该目录是空的。这也会导致CMD失败,因为它找不到位于项目目录根目录下的manage.py文件。

我已经看到其他帖子在堆栈溢出与类似的标题,不幸的是没有解决方案已经能够解决我的问题。我试图改变本地音量路径从相对到绝对的结果没有任何不同。感谢您提前帮助任何能够帮助他人的人。

编辑:

已经运行docker inspect在容器上,下面是MountsConfig下找到的信息 - Volume

"Mounts": [ 
      { 
       "Type": "bind", 
       "Source": "/home/jonathan/projects/flask-microservices-users", 
       "Destination": "/usr/src/app", 
       "Mode": "rw", 
       "RW": true, 
       "Propagation": "rprivate" 
      } 
     ], 
... 
"Config": { 
     ... 
     "Image": "flaskmicroservicesusers_users-service", 
     "Volumes": { 
      "/usr/src/app": {} 
     }, 
     "WorkingDir": "/usr/src/app", 
     ... 
+0

什么在目录中你安装? '.'它不是空的吗? – user3012759

+0

我正在安装的目录是该项目的根目录。 'me @ ubuntu:〜/ project $ ls Dockerfile manage.py README.md docker-compose.yml 项目需求。txt' – Jonnyishman

+0

您可以对您的用户服务容器进行码头检查并检查它有哪些容量? – user3012759

回答

1

从您的以下Dockerfile

# add app 
ADD . /usr/src/app 

这里查看答案以获得更多信息:

https://stackoverflow.com/a/27753725/1799408

+0

嗨迈克尔,感谢您的建议,不幸的是它并没有解决问题。即使清理码头缓存并从头开始。我编辑了我的原始评论,在容器中包含了“docker compose”的结果。 – Jonnyishman