35 votes

Comment faire pour que la boîte à outils Docker fonctionne avec le projet .net core 2.0

J'obtiens une erreur d'essayer d'utiliser le Support de la fonctionnalité avec mon .NET core 2.0 projet. J'ai reçu un message d'erreur disant:

Visual Studio Conteneur des Outils nécessite Docker à être en cours d'exécution avant de bâtiment, de débogage ou de l'exécution d'un conteneur de projet. Pour plus d'info, veuillez voir: http://aka.ms/DockerToolsTroubleshooting

J'ai suivi le lien, et sur la réalisation j'ai Windows 10 Home x64, et avait pour installer Docker boîte à outils, au lieu de Docker Pour Windows. Maintenant, il installé ce fichier exécutable appelé

Le Panneau De Démarrage Du Terminal

Est-ce la façon dont on est censé démarrer que docker services? J'ai essayé de lancer cet exécutable, et il semble fonctionner. Mes conteneurs sont en cours d'exécution, mais l'erreur de Visual Studio Conteneur des Outils persiste encore.

Ce qui me manque? Est d'avoir une version de windows plus élevé que la Maison requise pour utiliser le Conteneur Docker dans Visual Studio 2017?

Mise à JOUR:

J'ai essayé de suivre Quetzcoatl de la suggestion, et je reçois toujours le même message d'erreur dans visual studio sur ces outils. Voici ce que j'ai couru dans le Panneau de Démarrage Rapide du Terminal. J'ai essayé de la construction du projet après Visual Studio ouvert avec succès le projet, et était encore en train de l'erreur susmentionnée concernant le conteneur des outils.

Mon devenv.exe le fichier est situé à

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe

et mon fichier de solution est situé à

D:\Development\Visual Studio\Musify2\Musify2\Musify2.la sln

enter image description here

Mise à JOUR 2:

J'ai couru certains l'ont suggéré les commandes à l'essai dans le panneau de démarrage du terminal et voici les résultats de ces commandes quetzenter image description here

26voto

quetzalcoatl Points 8814

Avec le Panneau de boîte à outils qui est un peu compliqué, mais en réalité, le core 2.0 n'a rien à faire ici. Il est tout au sujet de docker, docker-boîte à outils, et VS.

Tout d'abord:

Est-ce la façon dont on est censé démarrer que docker services? J'ai essayé de lancer cet exécutable, et il semble fonctionner.

Oui, il est. Si le panneau de la machine/l'exécution de services - ce qui est bon!

Maintenant, vous vous rendez compte que dans le menu fixe, généralement, les informations sur comment/où le panneau est en cours d'exécution est conservé dans les variables d'environnement. L' quickstart script n'est pas seulement commence le docker-machine pour vous et vérifie certaines choses de base, il instaure également un couple de variables d'environnement afin que plus tard, toutes les commandes comme docker, docker-compose etc de savoir où chercher pour le menu fixe de la machine virtuelle. Dans votre/notre cas, cette information est principalement constitué d'un IP de la VM et un numéro de port que le Panneau écoute.

.. et votre Visual Studio n'a pas connaissance de cela, parce que j'ai parié sur que, vous avez couru le VisualStudio de StartMenu ou à partir de l'icône du Bureau ou en double-cliquant sur un fichier de la solution, de sorte qu'il n'avait aucune chance d'obtenir les variables de l'environnement à partir d' quickstart console.

La solution est assez simple: assurez-vous que VS obtient de cette information. C'est, assurez-vous qu'il obtient que les variables d'environnement, et de faire en sorte que les frais de l'état, parce que l'adresse IP/port peut fluctuer, parfois. Donc, ne pas les copier dans votre système d'exploitation, paramètres, car rien ne sera plus jamais automatiquement actualiser..

La façon la plus simple que j'ai trouvé est juste à proximité de Visual Studio, exécutez le panneau de boîte à outils de démarrage de la console, puis exécutez le VisualStudio depuis l'intérieur de la console, par exemple, pour mon VS2017 Community Edition:

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

Le chemin est assez long à écrire, même avec l'ONGLET de l'achèvement, donc généralement faire un petit .sh script à exécuter que pour moi.

BTW! Notez que le chemin d'accès à DEVENV doit être de type unix (/c/Program\ Files...), parce que le mingw shell a fait comprendre que, bien que le chemin à la SOLUTION doit être sur un chemin d'accès windows (c:\projects\foo\bar\..) en raison VisualStudio vais essayer de lire qu'après le démarrage.

18voto

BRBdot Points 312

C'est ce que j'ai fait pour passer vs 2017 de travail sur windows 10 à la maison avec docker-boîte à outils. Vous suivez cela, et je vous garantis que ça va fonctionner. Notez que cela ne s'applique à windows 10 à la maison qui n'a pas de support natif menu fixe pour les applications windows:

  1. Installer docker-boîte à outils sur w10 maison

  2. Exécutez le panneau de Démarrage du terminal une fois pour créer le menu fixe-machine. Ça prend du temps. Il faut donc être patient tandis qu'il attribue l'adresse IP et d'autres choses

  3. Une fois que c'est fait, il va vous montrer une invite de commande. Le "Type de panneau-ip de l'appareil par défaut". Notez l'adresse ip que vous allez avoir besoin d'elle plus tard

  4. Fermer le Démarrage rapide de la fenêtre du terminal. C'était juste pour initialiser le boot2docker.iso l'image d'un petit Ubuntu serveur linux sur virtualbox application (aka docker-machine aka défaut, vm). Si vous n'êtes pas familier avec la technologie de virtualisation ou oracle virtualbox arrêter de lire et de lire sur leur premier et puis recommencer. Mais si vous le faites alors un plaisir de continuer

  5. Comme je l'ai mentionné que votre menu fixe-instance de machine est une machine virtuelle Linux et par conséquent, il est évident que vous ne pouvez ouvrir que les projets réalisés à l'aide .net la technologie de base. Malheureusement pour complet .net framework, vous devrez exécuter Windows conteneurs qui ne sont disponibles que sur windows 10 pro ou construire votre propre windows nano serveur ou 2016 server vm sur virtualbox, puis utilisez et suivez les étapes pour le natif de docker pour windows sur les dockers de site web. À partir de là, le reste de cette réponse vous sera utile pour ceux qui veulent exécuter les grands projets sur Linux, vm / docker machine

  6. Ouvrez windows power shell en mode administrateur et tapez "docker-machine ls' pour confirmer que par défaut de la machine virtuelle est en cours d'exécution. Peut aussi faire "docker-l'état de la machine par défaut "et il doit retourner ‘en cours'

  7. Maintenant, ouvrez virtualbox application qui est en cours d'exécution par défaut de votre machine virtuelle et cliquez sur paramètres. Ouvrir des "espaces partagés" de l'onglet où vous devez veiller à ce que "c:\Users dossier sur la machine hôte est mappé/monté en tant que" c/Utilisateurs dossier dans la vm. Notez que cette étape est très importante et le manque, il va causer beaucoup de problèmes à la faire fonctionner correctement

  8. Aussi une note rapide que votre solution/projet/base de code DOIT être enregistré en vertu de "l'c:\Users\" pour qu'il fonctionne correctement. C'est, si vous voulez l'utiliser OOTB. Je n'ai pas envie de perdre du temps à essayer de monter un dossier en dehors du chemin autorisé. Mais si vous êtes du genre aventureux, s'il vous plaît, par tous les moyens essayer de le comprendre, et laissez-nous savoir comment vous avez fait

  9. Maintenant, comme Quetzalcoatl correctement mentionné vs a besoin de savoir à propos de ce menu fixe-machine. La seule façon qu'il se passe est que si les variables d'environnement sont définies. Par conséquent, aller de l'avant et de l'exécution de cette commande ‘docker-machine env défaut | Invoke-Expression " dans la fenêtre powershell. C'est la magie de la sauce vs arriver à se comporter correctement avec docker-machine

  10. Aller de l'avant et ouvrir vs normalement, soit en double cliquant sur votre projet de solution ou de la création d'un nouveau projet/solution. Dans Powershell utiliser la commande 'start' pour ouvrir votre vs solution ou une nouvelle vs instance. Pro-tip: si vous créez une nouvelle solution NE sélectionnez PAS l'option de Linux docker au moment de choisir le modèle de projet type. Vous pouvez tout à fait ajouter le panneau de soutien une fois que votre solution est en place et prêt à aller. Question de fait, laissez-la décochée et laissez vs créer votre solution. De cette façon, vous aurez une chance de construire et exécuter votre solution dans IIS Express ou Auto-hébergé modes pour voir si votre core2.0 même fonctionne correctement

  11. Une fois convaincu que tout a fonctionné et vous avez vu le OOTB la page d'accueil de maintenant, il est temps d'ajouter le panneau de support par rt cliquant sur votre projet, passez la souris sur Ajouter, puis en cliquant sur "Ajouter un menu fixe Support". Cela va créer un nouveau menu fixe de projet (.dcproj) et d'ajouter un tas de docker fichiers liés

  12. Maintenant, je ne vais pas aller dans le nitty gritty de docker ici, cependant, vous remarquerez que votre projet n'est plus le démarrage et le nouveau menu fixe d'un projet. C'est parfaitement normal et un comportement intentionnel. Cela signifie que vous êtes d'installation et prêts à faire feu de votre application à l'aide de conteneurs docker. Alors allez-y et cliquez sur le "Docker" pour voir votre travail dur enfin payer. Encore être patient car il faut du temps pour construire des images et faire tourner les conteneurs, mais une fois que c'est fait contre la volonté de début et d'attacher le débogueur

  13. Ici, vous aurez une fois de plus être déçu et se sentir sans valeur, car lorsque le navigateur s'ouvre dans une nouvelle fenêtre ou onglet, il y a une page inaccessible à l'erreur. La raison en est que le navigateur l'adresse des points de localhost qui n'est pas le serveur web plus. Votre "serveur web", est maintenant votre conteneur docker et, par conséquent, vous aurez besoin de remplacer localhost par l'adresse IP que vous avez récupéré ci-dessus. Numéro de Port reste comme elle est. Une fois que vous soumettez la page, vous serez soulagés et ravis de voir la page d'accueil/itinéraire travail. Cela devrait également permettre le débogage dans contre si pour une raison quelconque, il n'est pas le cas, alors vous pouvez avoir besoin de supprimer un dossier appelé .vsdbg dans c:\Users\ dossier et exécutez à nouveau l'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X