net microsoft guide eshoponcontainers containerized book asp c# docker asp.net-core visual-studio-2017 microservices

c# - guide - microservices microsoft book



Cómo hacer que la caja de herramientas de la ventana acoplable funcione con el proyecto.net core 2.0 (2)

Recibo un error al intentar usar la funcionalidad Docker con mi proyecto .NET core 2.0. He estado recibiendo un mensaje de error diciendo

Visual Studio Container Tools requiere que Docker se ejecute antes de compilar, depurar o ejecutar un proyecto en contenedor. Para obtener más información, consulte: http://aka.ms/DockerToolsTroubleshooting

Seguí el enlace y, al darme cuenta de que tengo Windows 10 Home x64, tuve que instalar Docker Toolbox, en lugar de Docker para Windows. Ahora se instaló este ejecutable llamado

Terminal de inicio rápido de Docker

¿Es esta la forma en que se supone que uno debe iniciar los servicios de la ventana acoplable? He intentado ejecutar este ejecutable, y parece estar funcionando. Mis contenedores se están ejecutando, pero el error para Visual Studio Container Tools aún persiste.

¿Qué me estoy perdiendo? ¿Es necesaria una versión de Windows superior a la de Inicio para usar el soporte de Docker Container en Visual Studio 2017?

ACTUALIZAR:

Traté de seguir la sugerencia de Quetzcoatl, y todavía estoy recibiendo el mismo error en el estudio visual sobre esas herramientas. Esto es lo que corrí en la Terminal de inicio rápido de Docker. Intenté generar el proyecto después de que Visual Studio lo abrió con éxito, y aún recibía el error mencionado anteriormente con respecto a las herramientas del contenedor.

Mi archivo devenv.exe se encuentra en

C: / Archivos de programa (x86) / Microsoft Visual Studio / 2017 / Community / Common7 / IDE / devenv.exe

y mi archivo de solución se encuentra en

D: / Development / Visual Studio / Musify2 / Musify2 / Musify2.sln

ACTUALIZACIÓN 2:

Ejecuté algunos de los comandos sugeridos para probar en la terminal de inicio rápido de la ventana acoplable y aquí estaban los resultados de esos comandos quetz


Con Docker Toolbox es un poco complicado, pero en realidad el Core-2.0 no tiene nada que hacer aquí. Se trata de docker, docker-toolbox, y VS.

Ante todo:

¿Es esta la forma en que se supone que uno debe iniciar los servicios de la ventana acoplable? He intentado ejecutar este ejecutable, y parece estar funcionando.

Sí lo es. Si la máquina / servicios de la ventana acoplable están funcionando, ¡eso es bueno!

Ahora, debe darse cuenta de que en la ventana acoplable, normalmente, la información sobre cómo / dónde se está ejecutando la ventana acoplable se mantiene en las variables de entorno . La secuencia de comandos de quickstart no solo inicia la máquina acoplable y verifica algunas cosas básicas, sino que también configura un par de variables de entorno para que luego todos los comandos como docker , docker-compose docker , etc. sepan dónde buscar la máquina virtual acoplable. En su / nuestro caso, esa información consiste principalmente en una IP de la VM y un número de puerto que Docker escucha.

... y su Visual Studio no tiene conocimiento de eso, porque apuesto a que ha ejecutado VisualStudio desde StartMenu o desde el ícono de Desktop o al hacer doble clic en un archivo de solución, por lo que no tenía ninguna posibilidad de obtener las variables ambientales desde la consola de quickstart .

La solución es bastante simple: asegúrese de que VS obtenga esa información. Es decir, asegúrese de obtener esas variables ambientales y asegúrese de que obtenga el estado actual de ellas, ya que la IP / puerto puede fluctuar algunas veces. Así que no solo cópielos a la configuración de su sistema operativo, ya que nada los actualizará automáticamente.

La forma más sencilla que encontré es simplemente cerrar Visual Studio, ejecutar la consola de inicio rápido de la caja de herramientas de la ventana acoplable y luego ejecutar VisualStudio desde esa consola , por ejemplo, para mi Edición de la Comunidad VS2017:

Starting "default"... (default) Check network to re-create if needed... (default) Waiting for an IP... (.......snip..........) ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""/___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ /______ o __/ / / __/ /____/_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com Start interactive shell quetzalcoatl@LAP049 MINGW32 ~ $ /c/Program/ Files/ /(x86/)/Microsoft/ Visual/ Studio/2017/Community/Common7/IDE/devenv.exe C://PATH//TO//MY//SOLUTION.sln

El camino es bastante largo para escribir, incluso con la finalización de TAB, por lo que normalmente se hace un pequeño script .sh para ejecutarlo.

Por cierto Observe que la ruta a DEVENV debe ser similar a Unix ( /c/Program/ Files... ), porque el shell mingw tiene que entenderlo, mientras que la ruta a SOLUTION debe ser una ruta normal de Windows ( c:/projects/foo/bar/.. ) porque VisualStudio intentará leer eso después de iniciar.


Esto es lo que hice para lograr que el 2017 funcione en Windows 10 con la ventana acoplable de herramientas. Sigues esto y te garantizo que funcionará. Tenga en cuenta que esto solo se aplica a Windows 10 Home que no es compatible con la ventana acoplable nativa para la aplicación de Windows:

  1. Instalar docker-toolbox en w10 home

  2. Ejecute el terminal QuickStart de la ventana acoplable una vez para crear la máquina acoplable. Se tarda un poco. Así que ten paciencia mientras asigna la dirección IP y otras cosas

  3. Una vez hecho esto, le mostrará un símbolo del sistema. Escriba ''docker-machine ip default''. Anote la dirección IP ya que la necesitará más tarde

  4. Cierre la ventana de terminal de inicio rápido. Eso fue solo para inicializar la imagen boot2docker.iso de un pequeño servidor Linux de Ubuntu en la aplicación virtualbox (también conocida como docker-machine aka default vm). Si no está familiarizado con la tecnología de virtualización o con oracle virtualbox, detenga la lectura y lea primero y luego comience de nuevo. Pero si lo haces con gusto continúas

  5. Como mencioné, su instancia de docker-machine es una máquina virtual de Linux y, por lo tanto, es obvio que solo puede abrir proyectos creados con la tecnología central .net. Desafortunadamente, para .net Framework completo, deberá ejecutar los contenedores de Windows que solo están disponibles en Windows 10 pro o crear su propio servidor Windows nano o 2016 server vm en virtualbox y luego usar y seguir los pasos de la ventana acoplable nativa para Windows en el sitio web de dockers . De aquí en adelante, el resto de esta respuesta será útil para aquellos que quieran ejecutar proyectos centrales solo en Linux vm / docker-machine

  6. Abra Windows Power Shell en modo administrador y escriba ''docker-machine ls'' para confirmar que vm predeterminado se está ejecutando. También se puede hacer ''estado predeterminado de la máquina de conexión'' y debería devolver ''en ejecución''

  7. Ahora abra la aplicación virtualbox que ejecuta su vm predeterminada y haga clic en configuración. Abra la pestaña "unidades compartidas" donde necesita asegurarse de que la carpeta ''c: / Users'' en la máquina host esté asignada / montada como carpeta ''c / Users'' en la máquina virtual. Tenga en cuenta que este paso es muy importante y faltará, ya que causará muchos problemas para que funcione correctamente.

  8. También una nota rápida de que su solución / proyecto / código base DEBE guardarse en ''c: / Users /' para que funcione correctamente. Esto es si quieres usarlo OOTB. No quería perder el tiempo tratando de montar una carpeta fuera del camino permitido. Pero si eres del tipo aventurero, por favor, trata de averiguarlo y dinos cómo lo hiciste.

  9. Ahora, como Quetzalcoatl ha mencionado correctamente, es necesario saber acerca de esta máquina acopladora. La única forma en que esto sucede es si las variables de entorno están establecidas. Por lo tanto, siga adelante y ejecute este comando ''docker-machine env default | Invocar-Expresión ''en la ventana de powershell. Esta es la salsa mágica que se va a comportar bien con la maquina acopladora.

  10. Continúe y abra vs normalmente, ya sea haciendo doble clic en la solución de su proyecto o creando un nuevo proyecto / solución. En Powershell, use el comando ''iniciar'' para abrir su solución vs existente o una nueva instancia vs. Pro-tip: si crea una nueva solución, NO seleccione la opción de la ventana acoplable de Linux al momento de seleccionar el tipo de plantilla del proyecto. Puede agregar totalmente el soporte de la ventana acoplable una vez que su solución esté completamente configurada y lista para funcionar. De hecho, déjelo sin marcar y deje que vs cree su solución. De esta manera, tendrá la oportunidad de construir y ejecutar su solución en los modos IIS Express o Auto-alojado para ver si su Core2.0 funciona correctamente.

  11. Una vez que esté satisfecho de que todo funcionó y vio la página de inicio de OOTB, ahora es el momento de agregar el soporte de la ventana acoplable haciendo clic en su proyecto, colocando el cursor sobre Agregar y luego haciendo clic en ''Agregar soporte de Docker''. Esto creará un nuevo proyecto de ventana acoplable (.dcproj) y agregará un montón de archivos relacionados con la ventana acoplable.

  12. Ahora no voy a entrar en el meollo de la ventana acoplable aquí, sin embargo, te darás cuenta de que tu proyecto ya no es el inicio y el proyecto de la ventana acoplable recién creado. Eso es perfectamente normal y el comportamiento previsto. Significa que está configurado y listo para iniciar su aplicación utilizando contenedores docker. Así que adelante, haga clic en el botón ''Docker'' para ver que su arduo trabajo finalmente da sus frutos. Nuevamente, tenga paciencia, ya que toma un tiempo construir imágenes y girar contenedores, pero una vez hecho esto, la vs comenzará y adjuntará el depurador

  13. Aquí una vez más se sentirá decepcionado y se sentirá sin valor porque cuando el navegador abra una nueva ventana o pestaña, habrá un error de página inalcanzable. La razón es que la dirección del navegador apunta a localhost que ya no es el servidor web. Su "servidor web" ahora es su contenedor docker y, por lo tanto, deberá reemplazar localhost con la dirección IP que recuperó anteriormente. El número de puerto permanece como está. Una vez que envíe la página, se sentirá aliviado y extasiado al ver el trabajo de la página de inicio / ruta. Esto también debería habilitar la depuración en vs. Si, por alguna razón, no es así, es posible que deba eliminar una carpeta llamada .vsdbg en la carpeta c: / Users / y volver a ejecutar la aplicación.