2017-05-29 10 views
1

私はドッカー作成用ファイルから始めてマルチコンテナ設定をしています。私のCドライブのフォルダにセットアップを置き換えるまで、すべてうまく動作します。Node.js Dockerコンテナは、フォルダがデスクトップ上にあるときに実行されますが、Cドライブにはありません

たとえば、 i 'はアップドッキングウィンドウ-構成' と呼ぶ場合は、ここでそれが正常に動作します:C:\ユーザーはデスクトップ\ PrototypeEnvironment \ SOFTWARE \ DataSearch \

私を\そして、それは、ここでは動作しません:C:\テスト

node_1  | module.js:327 
node_1  |  throw err; 
node_1  | ^
node_1  | 
node_1  | Error: Cannot find module '/home/app/chat/server.js' 
node_1  |  at Function.Module._resolveFilename (module.js:325:15) 
node_1  |  at Function.Module._load (module.js:276:25) 
node_1  |  at Function.Module.runMain (module.js:441:10) 
node_1  |  at startup (node.js:134:18) 
node_1  |  at node.js:962:3 
trunk_node_1 exited with code 1 

私はWindows用のDockerツールボックスを使用しています これがなぜ起こるのか誰も知っていますか?さらに詳しい情報が必要な場合はお尋ねください。前もって感謝します。

ドッカー-コンファイル:

version: '2' 
    services: 
     node: 
     build: ./node_js 
     command: node_modules/.bin/nodemon -L index.js 
     command: node server.js 
     depends_on: 
      - mongo 
     links: 
      - mongo  
     environment: 
      NODE_ENV: development 
     ports: 
      - '8080:8080' 
      - '3000:3000' 
     volumes: 
      - ./node_js:/home/app/chat 
      - /home/app/chat/node_modules 

     mongo: 
     build: ./mongo 
     ports: 
      - "27017:27017" 
     volumes: 
      - ./mongo:/root 
     nodered: 
     image: jankappe/nodered 
     ports: 
      - '1880:1880' 
+0

docker-compose.ymlを表示してください。あなたはボリュームを使用していますか? – Robert

+0

@Robert更新された質問 – Jan

+0

を参照してください。この部分は、ボリューム '/ home/app/chat/node_modules'です。それを取り外してもう一度やり直してください。それが動作する場合は、私の答え[ここ](https://stackoverflow.com/questions/38425996/docker-compose-volume-on-node-modules-but-is-empty/43728476#43728476)を確認してください – Robert

答えて

1

ドッカーは、あなたがCを使用していない問題があります:あなたのために\ Users \ユーザー{your_user}フォルダをないCから他のフォルダ(ので、場所を投写:\ Users \ {your_user}フォルダ)はDockerの範囲外のものです。たとえば私のプロジェクトをC:\ my_porjectに入れた場合、docker-compose.ymlのボリュームは動作しません。同じプロジェクトをC:\ Users \ {my_user} \ my_porjectフォルダ(またはユーザのルートフォルダのサブフォルダ)のどこかに置くと、ボリュームが機能しています。

+0

説明をありがとう!これを修正する方法はありますか?これはちょうどその方法です – Jan

+0

問題は、Docker用のLinuxホストを提供しているVirtualBox VMがC:\ Usersを共有しているためです。おそらくあなたはこれで何かをしようとすることができますが、いくつかの追加ステップを実行する必要があります - ウェブの "docker windows users folder"を探します;) – arbogastes

関連する問題