Aplikazioari network_mode: service:vpn gehitzen diozu, pila berrabiarazi eta aplikazioa hiltzen da db jada ebazten ez delako. Compose fitxategian ez da ezer berrizendatu, beraz susmagarri nabariak DNSa eta datu-basea dira. Benetako aldaketa txikiagoa eta arraroagoa da: aplikazioak utzi dio izen hori existitzen den Compose sareko kide izateari. Datu-baseak zein izen-espaziotatik erantzun behar duen erabaki arte, ostalari-izenaren zuzenketa guztiak susmoa besterik ez dira.

Zergatik utzi zion db ostalari-izenak ebazteari

network_mode erabiltzen duen zerbitzuak ez du bere helbiderik Compose sare batean; izendatutako zerbitzuaren izen-espazioa mailegatzen du. Izen-espazio horrek bere interfazeak, ibilbideak, portu-espazioa eta ebazlea ekartzen ditu, eta aplikazioak backend sarera duen lotura ordezkatzen du. db izena ez zen inoiz abstraktua: sare horretan bizi zen eta bertako DNS integratuaren bidez ebazten zen. Kendu lotura eta izenak ez du non ebatzirik.

Egiaztatu hori edukiontzien barrualdetik, ez ostalaritik. Aplikazioan huts egiten duen eta datu-basearen edukiontzian arrakastatsu gertatzen den bilaketak esan nahi du izena ondo dagoela eta kidetza ez. Emaitza horrek konponketa compose topologian jartzen du, aplikazioaren ebazlearen ezarpenetan beharrean.

Hiru galdera fitxategia editatu aurretik

Erantzun hauei hurrenez hurren, bakoitzak topologia estutzen duelako. Zeren gainean erantzun behar du datu-baseak: beste edukiontzi batzuek erabiltzen duten ostalari-izenari, edo loopback-eko aplikazioari soilik? Aplikazioak ostalariari portu bat argitaratu behar dio, eta zein zerbitzuk luke jabetza? Datu-basea ostalaritik edo beste makinaren batetik irisgarria izan behar da, edo tuneletik barrutik soilik?

Datu-baseak bere izena behar badu eta aplikazioak ezer argitaratzen ez badu, eduki itzazu lotura bereizietan. Aplikazioak portu bat argitaratu behar badu eta dena tunelatik badoa, jarri datu-basea VPN izen-espazioan eta erabili loopback. Biak nahasteak pila bat sortzen du, garbi abiatu eta konexioan huts egiten duena.

Utzi datu-basea dagoen lekuan

Aldaketa txikiagoak izen-espazioaren jabea datu-basea dagoeneko duen sarera lotzen du. Aplikazioak lotura hori heredatzen du vpn pila partekatzen duelako, eta db lehen bezala ebazten da.

services:
  vpn:
    networks:
      - backend
  app:
    network_mode: service:vpn
  db:
    networks:
      - backend
networks:
  backend:

Ez gehitu networks aplikazioari ere. Compose-k propietate hori baztertzen du network_mode-rekin batera zerbitzu berean, eta erroreak fitxategira seinalatzen du, ez bikotera. VPN bezeroak backend helmuga bere izen-espazioan iragazten badu, doitu bere tokiko sarearen politika onartua ere; lotura partekatuak bide bat eskaintzen du, baina ez du iragazki hori gainditzen.

Eraman datu-basea izen-espaziora

Aldaketa handiagoak datu-basea izen-espazio berera eramaten du eta aplikazioa 127.0.0.1-ra bideratzen du portu errealarekin. Bi prozesuk ezin dute helbide eta portu bera lotu edukiontzi ezberdinetan abiatu direlako soilik, beraz wildcard helbidean ere entzuten duen datu-baseak hori egiten duen beste edozerrekin egingo du talka. Egiaztatu entzulea mugitu aurretik.

Argitaratutako portuak izen-espazioaren jabe den zerbitzuari dagozkio. ports aplikazioari gehitzea network_mode-rekin batera baztertzen da, eta aplikazioaren helbide bereizi bat asmatzeak existitzen ez den interfaze bat deskribatzen du.

Prestutasuna, blokeoa eta ebazlea

depends_on-k edukiontzien abiaraztea ordenatzen du; ez da tunela aktibo dagoen froga eta ez du trafikoa gelditzen tunela erortzen denean. Trata itzazu irisgarritasuna, tunelaren prestutasuna eta hutsegiteen blokeoa hiru baldintza bereizi gisa. Lehenengoa soilik betetzen duen pilak proba eskuzko bat gainditzen du egun on batean eta isurtzen du egun txar batean. Idatzi hiru erantzunak compose fitxategiaren ondoan, hurrengo pertsonak begiratuko duen tokian.

Izen-espazioa partekatzeak hau ere esan nahi du: aplikazioak VPN edukiontziaren ebazlea heredatzen du, eta horrek laguntzen du tuneletik DNS zerbitzariak bultzatzen dituenean, eta nahasten du egiten ez duenean. Egiaztatu izen-espazioak benetan zer duen, ostalariaren ebazlea aplikatzen dela suposatu ordez. Compose zerbitzuen erreferentziak leku bakarrean dokumentatzen ditu network_mode, ports eta mendekotasunen portaera, network_mode duen zerbitzu batek zergatik ez duen bere helbiderik barne.

Erlazionatutako artikuluak