J'essaie de servir django sur notre IP wifi locale, afin que notre développeur client puisse utiliser son appareil iOS pour tester l'API. Le problème est que lorsque j'exécute les conteneurs, il n'est accessible qu'à partir de mon navigateur Chrome en tant que localhost (= navigateur Chrome exécuté sur le même macbook que celui utilisé pour exécuter les conteneurs)
Mon fichier docker-compose :
version: '3'
volumes:
dev_postgres_data: {}
dev_postgres_data_backups: {}
services:
django:
build:
context: .
dockerfile: ./compose/dev/django/Dockerfile
image: apps_dev_django
container_name: django
depends_on:
- postgres
volumes:
- .:/app:z
env_file:
- ./.envs/.dev/.django
- ./.envs/.dev/.postgres
ports:
- "8000:8000"
command: /start
postgres:
build:
context: .
dockerfile: ./compose/production/postgres/Dockerfile
image: apps_production_postgres
container_name: postgres
volumes:
- dev_postgres_data:/var/lib/postgresql/data:Z
- dev_postgres_data_backups:/backups:z
env_file:
- ./.envs/.dev/.postgres
# ports must be set to use postgres container alone
ports:
- "5432:5432"
Si j'exécute le serveur Django localement (=sans utiliser docker-compose) avec la commande python manage.py runserver 192.168.0.255:8000
, le client qui utilise le même wifi que moi peut accéder à l'API. J'ai obtenu le 192.168.0.255 avec la commande ifconfig | grep "inet " | grep -v 127.0.0.1 | cut -d\ -f6
(quelque chose que j'ai obtenu après quelques recherches sur Google).
Si je lance ifconfig, j'obtiens,
...
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=400<CHANNEL_IO>
ether a4:5e:60:f1:cb:5b
inet6 fe80::85:51dd:e37a:5435%en0 prefixlen 64 secured scopeid 0x4
inet 192.168.0.17 netmask 0xffffff00 broadcast 192.168.0.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
...
Existe-t-il un moyen d'exécuter le docker-compose sur mon wifi local, afin que je puisse laisser les développeurs clients qui sont sur le même wifi accéder à l'API ? Merci.
(Edité) Ce qui suit ne semble pas fonctionner non plus :(
Thanks for the help. But this configuration does not seem to work.
```docker
...
services:
django:
...
networks:
lan:
ipv4_address: 192.168.0.10
postgres:
...
networks:
lan:
ipv4_address: 192.168.0.11
networks:
lan:
ipam:
driver: default
config:
- subnet: "192.168.0.0/24"
gateway: "192.168.0.1"
192.168.0.255 est une adresse de diffusion, ce n'est donc pas la bonne façon de lier votre serveur à cette adresse.
Je m'attends à ce que vous exécutiez la liaison du serveur à 0.0.0.0 et à partir de l'appareil iOS, vous devez vous connecter à votre IP : 192.168.0.17
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots