2017-08-07 47 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