2017-01-29 120 views
1

我正在嘗試使用Docker來改進我的工作流程。我在我的Windows 10家庭版上安裝了"Docker Toolbox for Windows"(因爲Docker應該只在專業上工作)。我使用mgexhev's angular-seed,聲稱提供完整的碼頭支持。有一個docker-compose.yml文件鏈接了一個./.docker/angular-seed.development.dockerfile。更改我的項目文件不會更改Docker計算機中的文件

git克隆種子項目後,我可以通過運行seed project's github page上給出的命令啓動它。所以我可以看到運行後的應用程序:

$ docker-compose build 
$ docker-compose up -d 

但是,當我用Visual Studio代碼更改代碼並保存livereload不起作用。我可以看到我的更改的唯一方法是重新運行構建和命令(重新運行npm install; 5分鐘)。

Docker's documentation他們說「摩的主目錄作爲數據卷」,以便能夠「改變源代碼,看看在實時應用的效果」

docker run -v //c/<path>:/<container path> 

但我當我使用docker-compose時,我不確定這是否正確?我也試過跑步:

docker run -d -P --name web -v //c/Users/k/dev/:/home/app/ angular-seed 
docker run -p 5555:5555 -v //c/Users/k/dev/:/home/app/ -w "/home/app/" angular-seed 
docker run -p 5555:5555 -v $(pwd):/home/app/ -w "/home/app/" angular-seed 

和很多類似的命令,但似乎沒有任何工作。

我試着將我的項目從C:/ dev/project移動到家中,因爲我在某處讀到可能存在一些不使用「home」目錄的訪問權限問題,但這沒有什麼區別。

我也有點困惑,說明說訪問本地主機:5555。我必須去dockerIP:5555才能看到該應用程序(以防止任何人理解我的代碼沒有在我的Docker容器中更新)。

當然我應該改變自動移動到泊塢窗環境或碼頭是不是發展:)

回答

1

看着你鏈接到泊塢窗,compose.yml非常有用的,我沒有看到任何卷條目。沒有這些,主機上的文件和容器中的文件之間就沒有可能的連接。您需要包含卷條目的docker-compose.yml,例如:

version: '2' 

services: 

    angular-seed: 
    build: 
     context: . 
     dockerfile: ./.docker/angular-seed.development.dockerfile 
    command: npm start 
    container_name: angular-seed-start 
    image: angular-seed 
    networks: 
     - dev-network 
    ports: 
     - '5555:5555' 
    volumes: 
     - .:/home/app/angular-seed 

networks: 
    dev-network: 
    driver: bridge 

Docker-machine在虛擬機箱虛擬機內部運行docker。默認情況下,我相信c:\ Users被分享到VM中,但您需要檢查虛擬框設置以確認這一點。您嘗試映射到容器中的任何主機目錄都是從虛擬機映射的,因此如果您的文件夾未共享到該虛擬機中,則不會包含您的文件。

使用IP,本地主機適用於Linux主機和更新版本的docker for windows/mac。較早的基於docker-machine的安裝需要使用虛擬機箱VM的IP。

+0

我發佈了一個新的問題,如何設置音量設置在Windows 10家http://stackoverflow.com/questions/41932778/setting-volumes-in-docker-compose-yml-file-for- Windows的10家 – Kriss