network_mode: service:vpn iyo magaca martigeliyaha db ee lumay
Wadaagista booska magacyada VPN waa doorasho topology ah. Ama db waxay haysataa cinwaankeeda oo vpn waxay ku biirtaa shabakaddaas, ama wax walba waxay ka jawaabaan loopback.
Waxaad ku darto network_mode: service:vpn app-ka, dib ayaad u bilowdaa stack-ka, app-kuna wuu dhintaa sababtoo ah db lama xalliyo mar dambe. Waxba lama beddelin magaca gudaha faylka compose, sidaas darteed tuhmanayaasha cad waa DNS iyo database-ka. Isbeddelka dhabta ah wuu ka yar yahay oo ka yaab leh: app-ku wuxuu joojiyay inuu xubin ka noqdo shabakadda Compose ee magacaas ku jiro. Ilaa aad go'aansato booska magacyada ee database-ku ka jawaabayo, sixid kasta oo magaca martigeliyaha ah waa qiyaas.
Sababta magaca martigeliyaha db u joojiyay xallinta
Adeegga isticmaala network_mode ma laha cinwaan u gaar ah shabakadda Compose; wuxuu amaahdaa booska magacyada adeegga la magacaabay. Booskaas wuxuu keenayaa interface-yadiisa, waddooyinkiisa, booska port-ka iyo xalliyaha, wuxuuna beddelaa isku-xirka app-ka ee shabakadda backend. Magaca db waligiis ma ahayn mid aan la taaban karin: wuxuu ku noolaa shabakaddaas oo waxaa lagu xalliyay DNS-keeda gudaha. Ka saar isku-xirka oo magacu ma laha meel uu ku xalliyo.
Tan ka xaqiiji gudaha container-yada halkii aad ka xaqiijin lahayd host-ka. Raadin ku guuldareysta app-ka laakiin ku guuleysta container-ka database-ka macneheedu waa magacu wuu fiican yahay xubinnimaduna ma aha. Natiijadaas waxay kaloo sixidda dhigtaa topology-ga compose halkii ay ka dhigi lahayd dejinta xalliyaha app-ka.
Saddex su'aal ka hor inta aadan tafatirin faylka
Uga jawaab si kala horreysa, sababtoo ah mid kastaa wuu cidhiidhiyaa topology-ga. Muxuu database-ku ka jawaabayaa: magac martigeliye ah oo container-yada kale isticmaalaan, mise app-ka oo kaliya loopback? Waa in app-ku soo bandhigaa port host-ka, oo adeeg kee ayaa lahaan lahaa? Waa in database-ku laga gaari karaa host-ka ama mishiin kale, mise gudaha tunnel-ka oo kaliya?
Haddii database-ku u baahan yahay magaciisa oo app-ku waxba soo bandhigin, ku hay isku-xirro gooni ah. Haddii app-ku waa inuu soo bandhigaa port oo wax walba tunnel-ka ku maraan, database-ka geli booska magacyada VPN oo isticmaal loopback. Labada isku darka waxay soo saartaa stack si nadiif ah u bilaabma oo ku guuldareysta wakhtiga isku xirka.
Database-ka ku daa meesha uu joogo
Isbeddelka yar wuxuu ku xiraa milkiilaha booska magacyada shabakadda horeba u leh database-ka. App-ku wuxuu dhaxlaa isku-xirkaas sababtoo ah wuxuu wadaagaa stack-ka vpn, oo db waxaa loo xalliyaa si la mid ah sidii hore.
services:
vpn:
networks:
- backend
app:
network_mode: service:vpn
db:
networks:
- backend
networks:
backend:Ha ku darin networks sidoo kale app-ka. Compose wuu diidaa sifadaas oo ay la socoto network_mode isla adeegga, khaladkuna wuxuu tilmaamaa faylka halkii uu tilmaami lahaa lammaanaha. Haddii macmiilka VPN uu shaandheeyo meesha backend gudaha booskiisa magacyada, hagaaji sidoo kale siyaasadda shabakadda maxalliga ah ee la taageeray; isku-xir la wadaago wuxuu bixiyaa waddo laakiin ma joojiso shaandhayntaas.
U rar database-ka booska magacyada
Isbeddelka weyn wuxuu database-ka dhigaa isla booska magacyada oo app-ka u jeediyaa 127.0.0.1 isagoo wata port-ka dhabta ah. Laba geeddi-socod ma xiri karaan labaduba isla cinwaanka iyo port-ka kaliya sababtoo ah waxay ka bilaabmeen container-yo kala duwan, sidaas darteed database-ku sidoo kale dhageysta cinwaanka wildcard wuxuu ku dhacaa wax kasta oo kale oo sidaas sameeya. Hubi dhageystaha ka hor inta aadan rarin.
Port-yada la daabacay waxaa leh adeegga milkiilaha booska magacyada. Ku darista ports app-ka waa la diidayaa oo ay la socoto network_mode, hindisaha cinwaan app gooni ahna wuxuu qeexayaa interface aan jirin.
Diyaargarow, xannibaad iyo xalliyaha
depends_on wuxuu habeeyaa bilowga container-yada; ma aha caddayn in tunnel-ku shaqeynayo lamana joojiso taraafikada marka tunnel-ku dhaco. U qaado gaaritaanka, diyaargarowga tunnel-ka iyo xannibaadda guul-darrooyinka saddex shuruudood oo gooni ah. Stack-ka buuxiya kaliya tan koowaad wuxuu maalin wanaagsan ku gudbaa tijaabo gacan ah oo maalin xun ku daadanayaa. Saddexda jawaab ku qor faylka compose agtiisa, meesha qofka xiga uu fiirin doono.
Wadaagista booska magacyada waxay kaloo macneheedu tahay app-ku wuxuu dhaxlaa xalliyaha container-ka VPN, taasoo caawisa marka tunnel-ku ku qasbo server-yada DNS oo jahawareeriya marka aanu sidaas yeelin. Hubi waxa booska magacyadu dhab ahaan ka kooban yahay halkii aad ka fikiri lahayd in xalliyaha host-ku khuseeyo. Tixraaca adeegyada Compose wuxuu meel kaliya ku diiwaangeliyay network_mode, ports iyo habdhaqanka ku-tiirsanaanta, oo ay ku jirto sababta adeegga network_mode uusan lahayn cinwaan u gaar ah.