Lorsque j'ai essayé d'utiliser Docker pour PyCharm sur Windows 10, j'étais accro à diverses choses telles que la résolution de chemin, alors prenez-en note. À la suite d'essais et d'erreurs, il peut y avoir des étapes supplémentaires.
PyCharm n'a pas bien fonctionné en 2017.1. Pour ceux qui ne sont pas Windows ou qui sont Windows mais n'utilisent pas Hyper-V, reportez-vous à Utilisation de Docker pour le développement avec PyCharm. Je pense que ce serait bien si c'était fait.
Lorsque vous utilisez Docker sur Windows, il existe Docker pour Windows et Docker Toolbox, mais ** Docker Toolbox ** est inclus. Sélectionnez le bouton Get Docker Toolbox for Windows
sur la page ci-dessous pour l'installer.
https://docs.docker.com/toolbox/overview/
Au début, j'ai installé Docker pour Windows pour utiliser Hyper-V, mais j'ai abandonné car je ne pouvais pas définir le dossier Certificats décrit plus tard [^ 1]. J'ai également utilisé Hyper-V avec Docker Toolbox.
Veuillez activer Hyper-V en vous référant à ce qui suit. Installer Hyper-V sur Windows 10
Créez une machine virtuelle en vous référant à ce qui suit. https://docs.docker.com/machine/drivers/hyper-v/
$ docker-machine create --driver hyperv --hyperv-memory 4096 --hyperv-cpu-count 4 default
Lorsque la commande ci-dessus est exécutée, une machine virtuelle sera créée avec les paramètres suivants.
Éléments de réglage | option | Exemple ci-dessus |
---|---|---|
chauffeur | --driver | hyperv |
Capacité mémoire | --hyperv-memory | 4096 |
Nombre de processeurs | --hyperv-cpu-count | 4 |
Nom de la machine | default |
Veuillez vous référer au lien ci-dessus pour d'autres options et détails. Il semble que la valeur de paramètre de cette zone puisse être modifiée ultérieurement avec Hyper-V Manager.
La VM telle qu'elle est ne peut pas se connecter au réseau externe. [Introduction à Docker Machine (pour Hyper-V)](http://qiita.com/ohhara_shiojiri/items/801a24a2c94ff93be82d#hyper-v%E7%92%B0%E5%A2%83%E8%A8%AD%E5 Veuillez définir le commutateur virtuel et la carte réseau en vous référant au ** paramètre d'environnement Hyper-V ** de% AE% 9A).
Par mesure de précaution dans ce cas, ** Assurez-vous de configurer les réseaux externes et internes. ** Si vous utilisez uniquement le réseau externe, l'adresse changera lorsque vous vous connecterez à un autre réseau et cela ne fonctionnera pas.
Il doit être dans l'état suivant.
Effectuez les réglages suivants en vous référant à la page ci-dessus.
Assurez-vous que le dossier partagé contient ** le projet que vous développez **. Le nom d'utilisateur et le mot de passe définis ici seront utilisés dans la section suivante. (L'ajout d'utilisateurs n'est peut-être pas vraiment nécessaire. Je ne suis pas sûr ici.)
Rendez le dossier partagé Windows accessible à partir de la machine virtuelle en tant que cifs.
Tout d'abord, installez cifs-utils sur la VM. Connectez-vous à la VM avec docker-machine ssh
et procédez comme suit: (Référence)
$ wget http://distro.ibiblio.org/tinycorelinux/5.x/x86/tcz/cifs-utils.tcz
$ tce-load -i cifs-utils.tcz
Ensuite, montez l'ensemble de dossiers partagés en vous référant à ce qui suit. Monter et utiliser les dossiers partagés Windows à partir d'Ubuntu
Configurez-le pour qu'il se monte automatiquement au redémarrage de la machine virtuelle.
Créez un nouveau / var / lib / boot2docker / bootlocal.sh
sur la VM avec le contenu suivant.
bootlocal.sh
# /var/lib/boot2docker/Lorsqu'il est stocké dans le docker-Exécuté au démarrage de la machine
ip addr add 172.29.32.2/20 dev eth0 #Définissez une adresse IP fixe dans le même sous-réseau que HostOS
uid=1000 #utilisateur docker
gid=50 #groupe de personnel
user=share #Nom d'utilisateur autorisé à partager sur HostOS
password=xxxxxxxxxxxx #Mot de passe de l'utilisateur qui a autorisé le partage
host_ip=//172.29.32.1 #Adresse IP HostOS
mkdir -p /home/docker/src
mount -t cifs -o uid=${uid},gid=${gid},username=${user},password=${password} ${host_ip}/src /home/docker/src
L'utilisateur et le mot de passe ici sont ceux définis dans "1.5. Création d'un dossier partagé Windows".
host_ip
est l'adresse IP de votre PC Windows. Spécifiez l'adresse IP du réseau interne afin qu'il ne soit pas affecté par les modifications du réseau. Dans mon environnement, il était dans l'état suivant.
> ipconfig
Configuration IP Windows
Adaptateur Ethernet vEthernet(HNS Internal NIC) 2:
Suffixe DNS spécifique à la connexion. . . . .:
Lier l'adresse IPv6 locale. . . . .: fe80::68fe:336d:b69b:e392%24
Adresse IPv4. . . . . . . . . . . .: 172.29.32.1 ★ Utilisez-le comme adresse IP de HostOS
masque de sous-réseau. . . . . . . . . .: 255.255.240.0 ★ Ceci est pour le sous-réseau
passerelle par défaut. . . . . . .:
···réduction
Comme je l'ai mentionné précédemment, définissez l'adresse IP fixe dans la ligne suivante décrite dans bootlocal.sh
ci-dessus.
ip addr add 172.29.32.2/20 dev eth0 #Définissez une adresse IP fixe dans le même sous-réseau que HostOS
Le masque de sous-réseau correspond au résultat de ʻipconfig` sous Windows. Depuis PyCharm, vous accéderez à l'adresse IP définie ici.
C'est OK si DOCKER_HOST
of docker-machine env
est l'adresse IP spécifiée ici.
$ docker-machine env default
You can further specify your shell with either 'cmd' or 'powershell' with the --shell flag.
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://172.29.32.2:2376
SET DOCKER_CERT_PATH=C:\Users\uj\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
Préparez votre image préférée. Je l'ai obtenu de: https://hub.docker.com/_/python/
> docker pull python:3.5
Enfin, nous entrerons les paramètres sur PyCharm.
Ouvrez l'écran des paramètres à partir de Fichier> Paramètres
et ouvrez Construire, Exécution, Déploiement> Docker
.
Après avoir ajouté en appuyant sur le bouton +, entrez comme indiqué dans l'écran ci-dessous.
: Si l'adresse IP spécifiée dans "1.7. Définition d'une adresse IP fixe pour VM" est ʻip_addr
, saisissez-la comme https: // $ {ip_addr}: 2376
. Il doit correspondre à l'adresse IP de DOCKER_HOST
. Il y avait des informations selon lesquelles le protocole était tcp ou http, mais cela ne fonctionnait que si c'était ** https **.Dossier de certificats
: Même chemin que DOCKER_CERT_PATH
dans docker-machine env
. Ici, utilisez ** slash delimiter ** au lieu de back slash.Path mappings
: Je pense que quelque chose a été inclus par défaut, mais comme les paramètres après cela ne fonctionneront pas, ** je vais tout supprimer. ** **En cas de succès, vous verrez «Connexion réussie» au milieu de la fenêtre.
De plus, ce dossier Certificats
n'a pas pu être spécifié dans Docker pour Windows. [^ 1]
Continuez à ouvrir Projet: Propre projet> Interpréteur de projet
à partir de l'écran des paramètres.
Cliquez sur l'icône d'engrenage en haut à droite de la fenêtre et réglez comme suit.
Docker
avec le bouton radioServeur
: Ce qui a été spécifié dans" 2.1. Spécifier une VM "Chemin de l'interpréteur Python
: tel quelSi vous pouvez le configurer correctement et attendre un moment (3-4 minutes?), Le package valide sera affiché avec l'image spécifiée.
2.3. Run/Debug Configurations Enfin, définissez les paramètres pour l'exécution du test.
Sélectionnez Exécuter> Modifier les configurations
dans la barre de menus pour afficher l'écran Exécuter / Déboguer les configurations.
Appuyez sur le bouton + et sélectionnez Python tests> Unittests
(je pense que vous pouvez utiliser ce que vous voulez pour Unittests).
C'est le plus compliqué. ** Il est nécessaire de faire la distinction entre le chemin sur Windows et le chemin sur VM **. Veuillez lire le chemin en fonction de votre propre environnement.
Dans les exemples suivants, le chemin du projet est:
C:\Users\uj\src\github.com\ujiro99\auto_logger
Cible
: Sélectionnez Chemin
avec le bouton radio. Pour Chemin, sélectionnez le répertoire dans lequel le fichier de test du projet est enregistré.Interpréteur Python
: Sélectionnez l'interpréteur sélectionné dans" 2.2. Spécifier l'interpréteur de projet ".Répertoire de travail
: ** Spécifiez le chemin du projet sous Windows **.Path mappings
:...
pour afficher la boîte de dialogue.Local path
** spécifie le chemin du projet sous Windows.Remote Path
.Paramètres du conteneur Docker
: Appuyez sur...
pour afficher la boîte de dialogue. Réglez comme suit.Liaisons de volume
:>>
pour afficher la boîte de dialogue.Host path
spécifie le chemin du ** projet sur la ** VM.Si vous laissez le paramètre Path mappings
dans" 2.1. Specifying a VM ", ** le chemin sera converti ** involontairement, et cela ne fonctionnera pas.
Après avoir terminé les réglages jusqu'à ce point, vous pouvez exécuter le test.
Dans cet exemple, si vous stockez les fichiers de test sous chemin du projet / tests /
et exécutez le test, il sera exécuté comme suit. Vous pouvez également exécuter des débogages et utiliser des points d'arrêt.
J'ai présenté comment utiliser PyCharm dans l'environnement Docker (Hyper-V). Pour être honnête, le paramètre est assez gênant, donc pour le moment, je pense qu'il est préférable de gérer docilement l'environnement Python sur Local. J'attends avec impatience le développement futur de Jetbrans (ou Docker pour Windows).
[^ 1]: Docker pour Windows aurait peut-être fonctionné si vous exécutiez docker-machine regenerate-certs
Hmm.
Recommended Posts