2017-08-25 25 views
1

Dockerのサポート(私のホストはWindows 10マシン)でVisual Studio 2017でWebプロジェクトを作成しました。私のイメージはLinuxに基づいています。Visual Studioでのドッカーボリューム

また、ユーザーが画像をアップロードできるwebapiも作成しました。この画像をファイルシステムに保存する必要があります。

File.WriteAllBytes(path, bytes); // path = /pictures/abc.jpg 

をし、私はこのような画像を読み取ることができます:現在、私はこのようにやっている

byte[] bytes = File.ReadAllBytes(path); 

すべてが正常に動作します。

画像はコンテナに保存されていますが、ホストに保存したいのですが(最終的には、ドッカー画像はラズベリーパイでホストされています。 SDカード)。

解決策はVOLUMEを使用することだと思います。私はこの指示でちょっと微妙に変わったが、ホストの写真を見ることができなかった...どうすればいい?

ソリューションは、あなたがドッキングウィンドウのボリュームを使用する必要があり、このファイルに

ドッキングウィンドウ-compose.override.yml

version: '3' 

services: 
    abc: 
    environment: 
     - ASPNETCORE_ENVIRONMENT=Development 
    ports: 
     - "5001:80" 
    volumes: 
     - .:/src 
     - ./pictures:/pictures // <- The pictures folder is created where my docker project is 

答えて

1

です。あなたは

docker run -v ~/Desktop/images:/my/images/inside/docker 

以下のコードはコンテナ内 /my/images/inside/dockerへの書き込みを行うことを確認してくださいのようなホスト上のボリュームを設定することができます。これもホストに移動されます。

また、これもコンテナが死ぬままになり、ボリューム上の画像を保存します

docker volume create images 

docker run -v images:/my/images ... 

という名前のボリュームを使用することができます。しかし、これはあなたのホストにそれを格納しません

編集-1

のでdocker-compose.override.ymlは、使用するために必要なものです。ファイルの内容を次のように変更します。

version: '3' 

services: 
    ci-build: 
    volumes: 
     - .:/src 
     - ~/Desktop/images:/images/inside 

これにより、両方のファイルが結合されて実行されます。

+0

私はVisual Studioを使っています(質問に書かれているように)。私がデバッグセッション(F5)を開始しているときには、すべてが「魔法のように」行われているので、実際には、ドッカーはxxxを実行しません。 – Bidou

+0

プロジェクトには、Dockerfileと関連する2つのファイル1つはおそらく作成に関連しています。それらを見つけて質問にコンテンツを追加できますか?エクスプローラのフォルダを隠しファイルで表示する –

+0

質問が更新されました – Bidou

関連する問題