2017-12-06 21 views
0

私の頭をこれで叩いていて、助けてくれてありがとう!私は検索し、いくつかの潜在的な解決策を見つけましたが、すべては私のために行くものではありませんでした。Windowsネットワークへの接続Docker Container内のNodeJSからのドライブ

私はWindowsで開発されたnodejsアプリケーションを持っていて、ノード(最新の画像を使用して)のドッカーコンテナで動作しています。アプリケーションは共有Windowsネットワークドライブに接続して読み取り/書き込みを実行する必要がありますが、アプリケーションがドッキングコンテナ内で実行されているときには動作していないようです(ドッカーの外にあるWindowsマシンで実行されているときに問題ありません) 。

ネットワークドライブの共有フォルダは、次のようになります。誰にでも共有:

\\ MYSERVER \テスト

Nodejsコード(なく、かなりしかし、あなたは私がファイルにアクセスしています方法のアイデアを与える):nodejsで実行した場合

let fileLocation = "\\myserver\test\file.pdf" 
let readStream = fs.createReadStream(fileLocation) 

// When the stream is done being read, end the response 
readStream.on('close',() => 
{ 
    // End response 
    response.status('200').end() 

    // Remove the file 
    fs.unlinkSync(fileLocation) 
}) 

// Stream chunks to response 
readStream.pipe(response) 

これは正常に動作しますしかし、nodejsドッカー・コンテナ内で実行すると、 "ENOENT:no such file or directory"エラーが表示され続けます。私はこれがLinuxのOS(ノードイメージが基づいている)か、ドッカーの許可/特権の問題かどうかはわかりません。ファイルは存在します。

これは私がドッキングウィンドウにコンテナ

docker run --rm -it -p 8080:8080 myapplication:latest 

に新を実行しているんだけど、すべてのヘルプは高く評価されたときにテストするために使用しているコマンドです!

答えて

0

docker run -vdocumentationを参照)を使用してボリュームをマウントしてみてください。

私はあなたのWindowsネットワーク共有ドライブで動作することを望んでいます。

+1

お返事ありがとうございます。これは私が昨日やったことです。ボリュームをマウントしてその方法にアクセスする。それはもう一つのステップですが、うまくいきます。ありがとう! – Potentiator

関連する問題