run remove library hub docker environment-variables docker-compose visual-studio-2017

remove - ¿Cuándo, dónde y cómo configura Visual Studio 2017 la variable de entorno DOCKER_BUILD_SOURCE?



docker run image (2)

Al crear una nueva aplicación central .NET con compatibilidad con la ventana acoplable en Visual Studio 2017, se crean varios archivos docker-compose.yml. El docker-compose.vs.debug.yml y la variante de lanzamiento contienen una referencia a una variable de entorno llamada 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.

No pude encontrar información más detallada sobre este tema ... ¿Alguien tiene una idea o un puntero a algunos documentos?


Creo que tiene que ver con hacer alguna configuración que se pueda usar con los servicios de Visual Studio Team Services CI / CD. Sin embargo, cuando se ejecuta localmente, ese valor está vacío y si mira el archivo de ventana acoplable, verá que si el valor está vacío, sustituye "obj / Docker / publish"

Dockerfile:

DESDE microsoft / aspnetcore: 1.0

Fuente de ARG

WORKDIR / aplicación

Exponer 80

COPY $ {fuente: -obj / Docker / publish}.

ENTRYPOINT ["dotnet", "app.dll"]

Sin embargo, para mí, realmente no veo esa carpeta ni nada en ella. Donde sucede la "magia" está en la sección de volúmenes. que esencialmente mueve su código en el contenedor como un montículo de enlace . aquí es donde su código se traslada al contenedor. Hay algunas otras cosas que suceden que no están claras para mí porque veo una línea en la salida de compilación donde el código se crea / publica, pero no el comando real que se está ejecutando.


Esto no tiene un impacto real al construir imágenes de desarrollo. Como Nick explicó, obtenemos el código utilizando el montaje de enlace.

Esto se utiliza cuando se docker-compose.ci.build.yml imágenes para su uso en producción con el archivo docker-compose.ci.build.yml , que genera resultados para obj / Docker / publish de cada proyecto web de solución.