2016-05-23 63 views
1

我想使用碼頭捲來裝入我的碼目錄,但無法這樣做。 以下是我的docker-compose文件的相關部分。碼頭與自定義碼頭文件構成卷

web: 
    build: ./web 
    dockerfile: Dockerfile 
    links: 
    - db:db 
    - elasticsearch:elasticsearch 
    volumes: 
    - ./web:/usr/src/app 

web文件夾中有一個DockerFile與下面的說明。

FROM python:2.7 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

COPY requirements.txt /usr/src/app/ 
RUN pip install --no-cache-dir -r requirements.txt 

docker-compose up正在工作沒有任何問題,但啓動後我沒有看到任何卷。

[email protected]:/home/django/test# docker inspect test_web | grep -i volume 
     "Volumes": null, 
     "Volumes": null, 

這是我的堆棧的其餘部分,如果這是相關的。

elasticsearch 
nginx 
postgres db 
+0

什麼是您的操作系統? –

+0

Ubuntu 14.04,Docker 1.9.1 –

回答

1

以下語法適用。

卷: - $ {PWD} /網站:/ usr/src目錄/應用

web: 
    build: ./web 
    dockerfile: Dockerfile-aside 
    links: 
    - db:db 
    - elasticsearch:elasticsearch 
    volumes: 
    - ${PWD}/web:/usr/src/app 
    env_file: .env 

一個較早的遷移沒有被複制的原因是因爲我當時正在裏面的代碼新的容器,而不是當前的容器。

代替

docker-compose run --rm web /bin/bash 

當我試圖

docker exec -it my_container_name web /bin/bash 

再運行遷移命令,則新生成的數據庫遷移命令不存在於源目錄。這將是使用docker-compose exec的理想選擇,但是我使用的當前版本低於1.7,所以我同時使用了上述臨時解決方案。

https://github.com/d11wtq/dockerpty/pull/48