27

Visual Studio 2017でドッキング機能をサポートする新しい.NETコアアプリケーションを作成するときに、いくつかのdocker-compose.ymlファイルが作成されます。ドッキングウィンドウ-compose.vs.debug.ymlとの両方がDOCKER_BUILD_SOURCEという名前の環境変数への参照が含まれている含まれているリリースの変種:Visual Studio 2017でDOCKER_BUILD_SOURCE環境変数を設定する時期と場所

version: '2' 

services: 
    app: 
    image: app:dev 
    build: 
     args: 
     source: ${DOCKER_BUILD_SOURCE} 
    environment: 
     - DOTNET_USE_POLLING_FILE_WATCHER=1 
    volumes: 
     - ./app:/app 
     - ~/.nuget/packages:/root/.nuget/packages:ro 
     - ~/clrdbg:/clrdbg:ro 
    entrypoint: tail -f /dev/null 
    labels: 
     - "com.microsoft.visualstudio.targetoperatingsystem=linux" 

The purpose of this variable seems to be a reference to the source directory, however, it always seems to be empty. 

私はこのテーマに関するより詳細な情報を見つけることができませんでした...誰もが持っていますアイデアやいくつかのドキュメントへのポインタ?

+0

私のドッカービルドは、VS2017のアップデートがその値の設定を停止するまでうまくいきました。 – Nico

答えて

1

私は、Visual Studio Team Services CI/CDで使用できる設定を行うことが関係していると思います。しかし、ローカルで実行すると、その値が空で、あなたがドッキングウィンドウのファイルを見れば、あなたは値が空の場合、それは「OBJ /ドッカーは、パブリッシュ/」代入していることがわかり

Dockerfile:

マイクロソフト/ aspnetcore FROM :1.0

ARG源

WORKDIR /アプリ

COPYを露出させます$ {ソース:-obj/Docker/publish}。

ENTRYPOINT [ "DOTNET"、 "app.dll"]

しかし私のために、私は実際にそれでそのフォルダまたは何も表示されません。 「魔法」が起こる場所はボリュームセクションです。基本的にコードをbind moundとしてコンテナに移動します。これはあなたのコードがコンテナに移動する場所です。実際に実行されているコマンドではなく、コードがビルド/パブリッシュされるビルド出力の行が表示されるため、私には分かりません。

0

これは、開発用画像を構築する際に実際の影響はありません。 Nickが説明したように、bindマウントを使用してコードを取得します。

プロダクション用の画像をファイルdocker-compose.ci.build.ymlでビルドするときに使用され、各ソリューションWebプロジェクトのobj/Docker/publishに出力されます。

関連する問題