Honza Drábek aka. repli2dev nám ukázal, jak se vypořádat s více souběžnými Docker kompozicemi na localhostu. Za pomocí vlastní open-source knihovny Loopbind.
5. 1. Stop & Run
● $ cd project1
$ docker compose stop
$ cd project2
$ docker compose up
● Únavné
● Nefunguje když potřebujete oba projekty zároveň
6. 2. Port remapping
● project1/docker-compose.yaml:
- 80:80
● project2/docker-compose.yaml:
- 81:80
● Únavné, náročné na paměť programátora
● Drbačka s https (https://localhost:444 WTF)
● Problémy s kanonizací adresy ve frameworcích.
● Funguje když potřebujete zintegrovat více projektů napříč.
7. 3. Nginx jako reverzní proxy
● project1/docker-compose.yaml:
- 80:80
● project2/docker-compose.yaml:
- 81:80
● Nginx:
project1.test -> proxy localhost:80
project2.test -> proxy localhost:81
● Náročné na čas nastavení a konfigurace, lokální nginx nebo další Docker
kompozice.
● Funguje když potřebujete zintegrovat více projektů napříč.
● Lepší doménové jméno, URL bližší produkčnímu typicky.
8. 4. Bindování na konkrétní IP adresy
● project1/docker-compose.yaml:
- 127.0.0.30:80:80
● project2/docker-compose.yaml:
- 127.0.0.31:80:80
● /etc/hosts
project1.test -> 127.0.0.30
project2.test -> 127.0.0.31
● Zdlouhavé nastavení, ale vše lze řešit přes systém (žádný nginx s proxy).
● Funguje když potřebujete zintegrovat více projektů napříč.
● Lepší doménové jméno, URL bližší produkčnímu typicky.