Il y a certaines fonctionnalités, comme les employés de service JavaScript sans https, qui ne fonctionnent que sur localhost, mais lorsque j'exécute mon application dans un conteneur de docker, en utilisant docker-compose, qui s'exécute sur docker-machine, je dois me connecter à l'aide de l'adresse que je reçois
docker-machine ip default
Existe-t-il un moyen de mapper localhost
sur cette IP?
Vous pouvez ajouter un port VirtualBox vers l'avant pour mapper un port sur l'hôte docker à votre machine locale.
En supposant que votre machine docker est appelée "par défaut" et que vous souhaitez mapper le port 80 de votre conteneur à localhost: 8888, vous pouvez exécuter:
vboxmanage modifyvm default --natpf1 "nameformapping,tcp,,8888,,80"
ou si le VM est en cours d'exécution
vboxmanage controlvm default natpf1 "nameformapping,tcp,,8888,,80"
Cela peut également être fait dans l'interface utilisateur de VirtualBox dans les paramètres de la machine virtuelle. Voici le document de VirtualBox https://www.virtualbox.org/manual/ch06.html#network_nat
Vous devrez également mapper le port de votre conteneur sur le port de la machine docker, vous le faites lorsque vous démarrez le conteneur (cela suppose également que vous avez une commande "EXPOSE 80" dans votre Dockerfile
docker run -p 80:80 mycontainer
https://docs.docker.com/engine/reference/run/
Voir également: https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md
La modification de votre fichier hosts
fait que votre ordinateur local ne regarde directement que l'adresse IP spécifiée pour un domaine. Vous pouvez donc ajouter l'adresse IP du docker-machine
à la etc\hosts
fichier sur votre machine locale et mappez le port 80
sur votre conteneur au port 80
sur le docker-machine
.
Exemple:
1) Obtenir l'adresse IP de l'hôte docker
$ docker-machine ip default
192.168.99.100
2) Ajoutez cette ligne à etc/hosts
fichier sur votre machine locale
192.168.99.100 domain.com
3) Vérifiez que votre ordinateur résout le domaine.
$ ping domain.com
PING domain.com (192.168.99.100): 56 data bytes
64 bytes from 192.168.99.100: icmp_seq=0 ttl=64 time=0.294 ms
64 bytes from 192.168.99.100: icmp_seq=1 ttl=64 time=0.437 ms
64 bytes from 192.168.99.100: icmp_seq=2 ttl=64 time=0.556 ms
64 bytes from 192.168.99.100: icmp_seq=3 ttl=64 time=0.270 ms
Remarques:
C:\Windows\System32\Drivers\etc\hosts