Am următorul docker-compose.yml folosit ca soluție locală a aplicației web php:
versiunea: "3.1"
Servicii:
nginx:
imagine: nginx:1.13
volume:
- „./configuration/nginx.conf:/etc/nginx/nginx.conf:ro”
- „./configuration/etable-local.key:/etc/nginx/etable-local.key:ro”
- „./configuration/etable-local.crt:/etc/nginx/etable-local.crt:ro”
- „website:/var/www/html/website”
- „api:/var/www/html/static”
link-uri:
- „php708:site web”
- „php72:api”
retele:
în față:
adresa_ipv4: 172.20.0.5
porturi:
- „80:80”
- „443:443”
php72:
imagine: php:7.2-fpm-alpine
volume:
- „api:/var/www/html/api”
mediu inconjurator:
MEDIU: local
retele:
- în față
dns:
- 8.8.8.8
- 9.9.9.9
site:
imagine: php:7.2-fpm-alpine
volume:
- „api:/var/www/html/api”
mediu inconjurator:
MEDIU: local
retele:
- în față
dns:
- 8.8.8.8
- 9.9.9.9
volume:
site:
șofer: local
driver_opts:
tip: "niciuna"
o: "lega"
dispozitiv: $WEBSITE_DIR
API:
șofer: local
driver_opts:
tip: "niciuna"
o: "lega"
dispozitiv: $API_DIR
retele:
în față:
ipam:
config:
- subrețea: 172.20.0.0/24
Și în computerul meu care rulează containerul docker am următoarele intrări în /etc/hosts:
172.20.0.5 api.local
172.20.0.5 site.local
Dar vreau să deservesc și domenii wildcard, prin urmare mă gândesc să trimit și un dnsmasq cu configurațiile corespunzătoare în docker-compose și să renunț complet la /etc/hosts
(reutilizabilitate mai bună și setări partajate între echipe):
versiunea: "3.1"
Servicii:
nginx:
imagine: nginx:1.13
volume:
- „./configuration/nginx.conf:/etc/nginx/nginx.conf:ro”
- „./configuration/etable-local.key:/etc/nginx/etable-local.key:ro”
- „./configuration/etable-local.crt:/etc/nginx/etable-local.crt:ro”
- „website:/var/www/html/website”
- „api:/var/www/html/static”
link-uri:
- „php708:site web”
- „php72:api”
retele:
în față:
adresa_ipv4: 172.20.0.5
porturi:
- „80:80”
- „443:443”
php72:
imagine: php:7.2-fpm-alpine
volume:
- „api:/var/www/html/api”
mediu inconjurator:
MEDIU: local
retele:
- în față
dns:
- 8.8.8.8
- 9.9.9.9
site:
imagine: php:7.2-fpm-alpine
volume:
- „api:/var/www/html/api”
mediu inconjurator:
MEDIU: local
retele:
- în față
dns:
- 8.8.8.8
- 9.9.9.9
dnsmasq:
imagine: „jpillora/dnsmasq”
porturi:
- „53:53/udp”
- „5380:8080”
volume:
-"/opt/dnsmasq.conf:/etc/dnsmasq.conf"
mediu inconjurator:
HTTP_USER: foo
HTTP_PASS: bară
retele:
în față:
adresa_ipv4: 172.20.0.6
dns:
- 8.8.8.8
- 9.9.9.9
volume:
site:
șofer: local
driver_opts:
tip: "niciuna"
o: "lega"
dispozitiv: $WEBSITE_DIR
API:
șofer: local
driver_opts:
tip: "niciuna"
o: "lega"
dispozitiv: $API_DIR
retele:
în față:
ipam:
config:
- subrețea: 172.20.0.0/24
Dar cum îmi pot configura mașina GNU/Linux locală și Windows pentru a rezolva domeniile adecvate prin 172.20.0.6
alături de orice alt domeniu?
În linux mint 19.04, odată ce rulez ifconfig, primesc următoarele setări:
br-144546484da6: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 difuzare 172.18.255.255
ether 02:42:ee:ad:b4:6b txqueuelen 0 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 0 octeți 0 (0,0 B)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
br-2c821d16ac40: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.24.0.1 netmask 255.255.0.0 difuzare 172.24.255.255
ether 02:42:d1:29:8f:d0 txqueuelen 0 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 0 octeți 0 (0,0 B)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
br-936b043d07ec: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.0.1 netmask 255.255.255.0 difuzare 172.20.0.255
inet6 fe80::42:31ff:fe3b:6a93 prefixlen 64 scopeid 0x20<link>
ether 02:42:31:3b:6a:93 txqueuelen 0 (Ethernet)
Pachete RX 21190 octeți 46944301 (46,9 MB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 20152 octeți 3393362 (3,3 MB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 difuzare 172.17.255.255
ether 02:42:63:fa:1e:98 txqueuelen 0 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 0 octeți 0 (0,0 B)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.4 netmask 255.255.255.0 difuzare 192.168.2.255
inet6 fe80::4819:e008:32b3:eb75 prefixlen 64 scopeid 0x20<link>
ether 30:5a:3a:82:3c:2c txqueuelen 1000 (Ethernet)
Pachete RX 1020236 octeți 974038110 (974,0 MB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 708231 octeți 83763973 (83,7 MB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<gazdă>
loop txqueuelen 1000 (Loopback local)
Pachete RX 35856 octeți 3871878 (3,8 MB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 35856 octeți 3871878 (3,8 MB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
vboxnet3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.1 netmask 255.255.255.0 difuzare 192.168.10.255
inet6 fe80::800:27ff:fe00:3 prefixlen 64 scopeid 0x20<link>
ether 0a:00:27:00:00:03 txqueuelen 1000 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 1537 octeți 248272 (248,2 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
veth15937a1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::f828:5eff:fe17:5f3f prefixlen 64 scopeid 0x20<link>
ether fa:28:5e:17:5f:3f txqueuelen 0 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 1299 octeți 200892 (200,8 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
veth4f39177: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::7807:8bff:fef4:90d6 prefixlen 64 scopeid 0x20<link>
ether 7a:07:8b:f4:90:d6 txqueuelen 0 (Ethernet)
Pachete RX 4022 octeți 2287668 (2,2 MB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 4674 octeți 1238082 (1,2 MB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
vethb2863e3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::986d:2aff:feae:5a83 prefixlen 64 scopeid 0x20<link>
ether 9a:6d:2a:ae:5a:83 txqueuelen 0 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 1279 octeți 197402 (197,4 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
vethe23b637: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::d8cf:8dff:fe79:2de prefixlen 64 scopeid 0x20<link>
ether da:cf:8d:79:02:de txqueuelen 0 (Ethernet)
Pachete RX 10344 octeți 1065309 (1,0 MB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 11282 octeți 1252992 (1,2 MB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
vethea02dde: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::a8aa:72ff:fe3f:f7f6 prefixlen 64 scopeid 0x20<link>
eter aa:aa:72:3f:f7:f6 txqueuelen 0 (Ethernet)
Pachete RX 1792 octeți 43279416 (43,2 MB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 2443 octeți 307732 (307,7 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
vethf1bdbae: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::6cd3:dfff:feec:1000 prefixlen 64 scopeid 0x20<link>
ether 6e:d3:df:ec:10:00 txqueuelen 0 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 1272 octeți 196493 (196,4 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
vethf209ff2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::7c6c:11ff:fecc:25c7 prefixlen 64 scopeid 0x20<link>
ether 7e:6c:11:cc:25:c7 txqueuelen 0 (Ethernet)
Pachete RX 5594 octeți 45271086 (45,2 MB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 7041 octeți 45379695 (45,3 MB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
Și rețeaua pe care rulează dns este: br-936b043d07ec
dar mi-e teamă că și numele i se poate schimba de fiecare dată când alerg docker-compune
(odată ce îmi termin treaba, alerg frecvent docker-compose jos
).
Multe soluții de genul acesta unu sugerează rezoluția dns INTERIOR container docker. și pentru că acest lucru nu este ceea ce vreau, ci o modalitate de a avea o rezoluție a numelor wildcard într-un mod similar, aș putea configura domenii locale în /etc/hosts
.