Estoy revisando un nuevo Visual Studio 2017 con conectividad integrada a Docker. Una vez hecho todo, instalé y resolví una serie de problemas al establecer la conexión entre Visual Studio y Docker que se ejecutan en VirtualBox VM. Me enfrento a un problema cuando VS no puede ejecutar el contenedor debido a la asignación de volúmenes. Después de leer varias publicaciones sobre problemas similares, todavía no puedo ejecutarlo.
Es la aplicación de plantilla de muestra de .NET core totalmente predeterminada de VS 2017 con compatibilidad con Docker.
docker-compose.ci.build.yml
version: '2' services: ci-build: image: microsoft/aspnetcore-build:1.0-1.1 volumes: - .:/src working_dir: /src command: /bin/bash -c "dotnet restore ./WebApplication1.sln && dotnet publish ./WebApplication1.sln -c Release -o ./obj/Docker/publish"docker-compose.yml
version: '2' services: webapplication1: image: webapplication1 environment: - COMPOSE_CONVERT_WINDOWS_PATHS=1 build: context: ./WebApplication1 dockerfile: Dockerfiledocker-compose.override.yml
version: '2' services: webapplication1: environment: - ASPNETCORE_ENVIRONMENT=Development ports: - "80"ventana acoplable-compose.vs.debug.yml
version: '2' services: webapplication1: image: webapplication1:dev build: args: source: ${DOCKER_BUILD_SOURCE} environment: - DOTNET_USE_POLLING_FILE_WATCHER=1 volumes: - ./WebApplication1:/app - ~/.nuget/packages:/root/.nuget/packages:ro - ~/clrdbg:/clrdbg:ro entrypoint: tail -f /dev/null labels: - "com.microsoft.visualstudio.targetoperatingsystem=linux"Dockerfile
FROM microsoft/aspnetcore:1.1 ARG source WORKDIR /app EXPOSE 80 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "WebApplication1.dll"]Error:
ERROR: para webapplication1 No se puede crear un contenedor para el servicio webapplication1: especificación de montaje de enlace no válida "C:\Users\UserName\Documents\Visual Studio 2017\Projects\WebApplication1\WebApplication1:/app:rw": especificación de volumen no válida: 'C:\Users \Nombre de usuarioDocumentos\Visual Studio 2017\Proyectos\WebApplication1\WebApplication1:/app:rw'
¿Dónde está el problema? Intenté escapar de las barras y activar y desactivar COMPOSE_CONVERT_WINDOWS_PATHS, pero el resultado es siempre el mismo. ¡Por favor ayuda!
Creo que esto se debe a que se está ejecutando la última versión de Docker Toolbox, que no pasa por la variable de entorno DOCKER_BUILD_SOURCE. No creo que Docker Toolbox planee resolver esto por su parte, ya que están tratando las variables de entorno como deberían; pero Visual Studio necesitará una actualización o las plantillas de composición predeterminadas de Docker necesitarán una actualización para manejar esto.
También luché con esto durante unas horas y seguí luchando preguntándome por qué algo como esto no funcionaba...
volume: - c:\[dir]:c:\[dir]
resulta que es exigente con el caso en el disco y esto finalmente funcionó:
volume: - C:\[dir]:C:\[dir]