network_mode: service:vpn àti orúkọ olùgbàlejò db tó sọnù
Pínpín ààyè orúkọ VPN jẹ́ yíyàn ìtòlẹ́sẹẹsẹ. Yálà db pa àdírẹ́sì tirẹ̀ mọ́ tí vpn sì darapọ̀ mọ́ nẹ́tíwọ́kì yẹn, tàbí gbogbo nǹkan dáhùn lórí loopback.
O fi network_mode: service:vpn kún app, o tún stack bẹ̀rẹ̀, app sì kú nítorí a kò tún yanjú db mọ́. Kò sí orúkọ tí a yí padà nínú fáìlì compose, nítorí náà àwọn afura tó hàn gbangba ni DNS àti ibi ìpamọ́ dátà. Ìyípadà gidi kéré jù àti yani lẹ́nu: app jáwọ́ láti jẹ́ ọmọ ẹgbẹ́ nẹ́tíwọ́kì Compose tí orúkọ yẹn wà. Títí tí ìwọ yóò fi pinnu ààyè orúkọ wo ni ibi ìpamọ́ dátà yóò ti dáhùn, gbogbo àtúnṣe orúkọ olùgbàlejò jẹ́ àfojúsùn.
Ìdí tí orúkọ olùgbàlejò db fi jáwọ́ yíyanjú
Iṣẹ́ tó ń lo network_mode kò ní àdírẹ́sì tirẹ̀ lórí nẹ́tíwọ́kì Compose; ó ń yá ààyè orúkọ iṣẹ́ tí a dárúkọ. Ààyè yẹn mú àwọn interfece rẹ̀, àwọn ọ̀nà rẹ̀, ààyè pọ́ọ̀tì àti olùyánjú rẹ̀ wá, ó sì rọ́pò ìsopọ̀ app mọ́ nẹ́tíwọ́kì backend. Orúkọ db kò jẹ́ aláìlẹ́gbẹ́ rárá: ó ń gbé lórí nẹ́tíwọ́kì yẹn a sì ń yanjú rẹ̀ nípasẹ̀ DNS tó wà nínú rẹ̀. Yọ ìsopọ̀ náà kúrò, orúkọ kò sì ní ibi láti yanjú.
Jẹ́rìí sí i láti inú àwọn kọ́ńtéńà, kì í ṣe láti ọ̀dọ̀ olùgbàlejò. Ìwádìí tó kùnà nínú app ṣùgbọ́n tó ṣàṣeyọrí nínú kọ́ńtéńà ibi ìpamọ́ dátà túmọ̀ sí pé orúkọ náà dára ṣùgbọ́n ọmọ ẹgbẹ́ kò dára. Èsì yẹn tún gbé àtúnṣe náà sínú ìtòlẹ́sẹẹsẹ compose dípò ètò olùyánjú app.
Ìbéèrè mẹ́ta ṣáájú kí o tó ṣàtúnṣe fáìlì
Dáhùn wọ́n lẹ́sẹẹsẹ, nítorí ọ̀kọ̀ọ̀kan dín ìtòlẹ́sẹẹsẹ kù. Kí ni ibi ìpamọ́ dátà gbọ́dọ̀ dáhùn sí: orúkọ olùgbàlejò tí àwọn kọ́ńtéńà mìíràn ń lò, tàbí app nìkan lórí loopback? Ṣé app gbọ́dọ̀ tẹ pọ́ọ̀tì jáde sí olùgbàlejò, àti iṣẹ́ wo ni yóò ní í? Ṣé ibi ìpamọ́ dátà gbọ́dọ̀ jẹ́ àṣepọ̀ láti olùgbàlejò tàbí láti ẹ̀rọ mìíràn, tàbí láti inú ọ̀nà abẹ́lẹ̀ nìkan?
Tí ibi ìpamọ́ dátà bá nílò orúkọ tirẹ̀ tí app kò sì tẹ nǹkan kan jáde, pa wọ́n mọ́ lórí àwọn ìsopọ̀ ọ̀tọ̀ọ̀tọ̀. Tí app bá gbọ́dọ̀ tẹ pọ́ọ̀tì jáde tí gbogbo nǹkan sì ń gba inú ọ̀nà abẹ́lẹ̀, fi ibi ìpamọ́ dátà sínú ààyè orúkọ VPN kí o sì lo loopback. Dídàpapọ̀ méjèèjì ń dá stack tó bẹ̀rẹ̀ ní mímọ́ tó sì kùnà nígbà ìsopọ̀.
Fi ibi ìpamọ́ dátà síbi tó wà
Ìyípadà kékeré so ẹni tó ní ààyè orúkọ mọ́ nẹ́tíwọ́kì tó ti ní ibi ìpamọ́ dátà. App jogún ìsopọ̀ yẹn nítorí ó pín stack vpn, db sì ń yanjú gẹ́gẹ́ bíi ti àtẹ́lẹ̀.
services:
vpn:
networks:
- backend
app:
network_mode: service:vpn
db:
networks:
- backend
networks:
backend:Má ṣe fi networks kún app pẹ̀lú. Compose kọ irú ẹ̀yà yẹn pọ̀ mọ́ network_mode nínú iṣẹ́ kan náà, àṣìṣe sì ń tọ́ka sí fáìlì kì í ṣe sí ẹ̀kọ́ méjì náà. Tí ẹ̀rọ VPN bá ń ṣàyọ̀ ibi tó ń lọ backend nínú ààyè orúkọ rẹ̀, túnwò ìlànà nẹ́tíwọ́kì àdúgbò tó ń sìn rẹ̀ pẹ̀lú; ìsopọ̀ pínpín ń fúnni ní ọ̀nà ṣùgbọ́n kò fagilé àyọ̀ yẹn.
Gbé ibi ìpamọ́ dátà sínú ààyè orúkọ
Ìyípadà ńlá gbé ibi ìpamọ́ dátà sínú ààyè orúkọ kan náà, ó sì tọ́ka app sí 127.0.0.1 pẹ̀lú pọ́ọ̀tì gidi. Àwọn ìlànà méjì kò lè so àdírẹ́sì àti pọ́ọ̀tì kan náà papọ̀ kìkì nítorí pé wọ́n bẹ̀rẹ̀ nínú àwọn kọ́ńtéńà ọ̀tọ̀ọ̀tọ̀, nítorí náà ibi ìpamọ́ dátà tó ń gbọ́orí àdírẹ́sì wildcard pẹ̀lú yóò kọlu ohunkóhun mìíràn tó ń ṣe bẹ́ẹ̀. Ṣàyẹ̀wò olùgbọ́ ṣáájú kí o tó gbé e.
Àwọn pọ́ọ̀tì tí a tẹ jáde jẹ́ ti iṣẹ́ tó ní ààyè orúkọ. Fífi ports kún app ni a kọ̀ pọ̀ mọ́ network_mode, fífi àdírẹ́sì app ọ̀tọ̀ọ̀tọ̀ hàn sì ń ṣàpèjúwe interfece tí kò sí.
Ìmùrasílẹ̀, ìdínà àti olùyánjú
depends_on ń tò ìbẹ̀rẹ̀ kọ́ńtéńà; kì í ṣe ẹ̀rí pé ọ̀nà abẹ́lẹ̀ ń ṣiṣẹ́, kò sì dá ìrìnnà dúró nígbà tí ọ̀nà abẹ́lẹ̀ bá ṣubú. Kà àṣepọ̀, ìmùrasílẹ̀ ọ̀nà abẹ́lẹ̀ àti ìdínà àìṣeyọrí sí ìbéèrè mẹ́ta ọ̀tọ̀ọ̀tọ̀. Stack tó ń ní ìkẹyìn àkọ́kọ́ nìkan yóò ye ìdánwò ọwọ́ ní ọjọ́ dára yóò sì ń jò ní ọjọ́ burú. Kọ àwọn èsì mẹ́ta sẹ́gbẹ̀ẹ́ fáìlì compose, níbi tí ẹni tó kàn yóò wo.
Pínpín ààyè orúkọ túmọ̀ sí pẹ̀lú pé app jogún olùyánjú kọ́ńtéńà VPN, èyí tó ń ràn án lọ́wọ́ nígbà tí ọ̀nà abẹ́lẹ̀ bá ti àwọn ẹ̀rọ DNS mọ́ ọn tó sì ń dàrú nígbà tí kò bá ṣe bẹ́ẹ̀. Ṣàyẹ̀wò ohun tó wà nínú ààyè orúkọ gan-an dípò kí o rò pé olùyánjú olùgbàlejò ń ṣiṣẹ́. Ìwé ìtọ́kasí àwọn iṣẹ́ Compose ṣàkọsílẹ̀ network_mode, ports àti ìhùwàsí àwọn ìgbẹ́kẹ̀lé ní ibi kan, pẹ̀lú ìdí tí iṣẹ́ network_mode kò fi ní àdírẹ́sì tirẹ̀.