Sťahovania, ktoré v termináli kontajnera uspejú, sú skutočným dôkazom o prostredí tohto terminála. Nič nehovoria o procese editora, inštalátore rozšírení ani o binárnom súbore, ktorý si rozšírenie neskôr stiahne. Kopírovanie proxy premenných medzi týmito tromi premení jednu neúspešnú požiadavku na celé popoludnie nesúvisiacich úprav.

Dve prostredia sa zvyčajne líšia presne v jednom ohľade. Nájsť tento ohľad je rýchlejšie než dvakrát čítať dokumentáciu k proxy.

Ktorý proces odoslal neúspešnú požiadavku

Počas jednej inštalácie môžu zlyhať tri požiadavky a každá má vlastnú sieťovú identitu. Editor žiada Marketplace o metadáta a URL balíka, potom balík stiahne. Až potom hostiteľ rozšírení spustí kód, ktorý môže stiahnuť jazykový server alebo vlastnú binárku. Ktorá fáza sa zlomila, určuje, ktorý proces potrebuje proxy, a chybové hlásenie fázu málokedy pomenuje.

Funkčný terminál dokazuje, že kontajner dosiahne na internet, nie že naň dosiahne editor. Prečítajte si protokol rozšírenia a nájdite poslednú URL, ktorú sa pokúsilo použiť. Hostiteľ uvedený tam určuje proces a zásadu, ktorá sa naň vzťahuje.

Miestny editor a vzdialený kontajner sú dve prostredia

Vo vzdialenom pracovnom priestore beží rozšírenie na strane, ktorú deklaruje jeho typ. Rozšírenia rozhrania zostávajú pri miestnom editore a rozšírenia pracovného priestoru bežia v kontajneri. Proxy nastavená v jednom je pre druhé neviditeľná a prestavba vytvorí prostredie kontajnera z jeho konfiguračného súboru, nie z toho, čo ste exportovali v shelli. Toto rozdelenie vysvetľuje, prečo sa rovnaké rozšírenie nainštaluje na notebooku a zlyhá v tom istom projekte cez SSH.

Prečítajte si umiestnenie inštalácie, skôr než čokoľvek zmeníte. Keď protokol hlási vzdialenú inštaláciu, dôležité je prostredie kontajnera.

Umiestnite proxy tam, kde sa požiadavka začína

Pri Dev Containeri, ktorý skutočne potrebuje HTTP proxy, patrí premenná do konfigurácie kontajnera, aby ju prestavba reprodukovala. Nasledujúci fragment ju pre toto prostredie nastavuje. Zástupná adresa nahrádza vašu vlastnú bránu a vylúčenia nie sú voliteľná výplň.

"containerEnv": {
  "HTTP_PROXY": "http://proxy.corp.example:8080",
  "HTTPS_PROXY": "http://proxy.corp.example:8080",
  "NO_PROXY": "localhost,127.0.0.1,.internal.example"
}

Názov premennej opisuje cieľový protokol, takže hodnota HTTPS_PROXY môže legitímne začínať na http. Zmeňte to podporovanou cestou prestavby a vylúčenia zachovajte, pretože proxy, ktorá zachytáva interných hostiteľov, rozbíja služby, ktoré kontajner potrebuje.

Oddeľte zlyhania dôvery od dostupnosti

Proxy, ktorá sa pripojí a potom vráti chybu overenia certifikátu, dosiahla neskoršiu fázu než tá, ktorá spojenie odmietne. Prvé zlyhanie chce organizáciou schválený materiál dôvery nainštalovaný v prostredí, ktoré požiadavku vykonáva. Druhá chce dostupnú adresu a port. Ak ich berieme ako jeden problém, vznikne oprava, ktorá nefunguje ani pre jedno.

Vypnutie overovania alebo spustenie editora so zvýšenými právami nie je oprava chýbajúcej proxy ani chýbajúcej reťaze dôvery. Oboje vymení viditeľnú chybu za tichú. Potom skúste to isté rozšírenie znova a poznamenajte si ďalšiu URL, ktorá zlyhá.

env | grep -iE '^(http|https|no)_proxy='
code --install-extension ms-python.python --force

Poznamenajte si, ktorá strana pracovného priestoru danú URL vytvorila. Krátka poznámka s fázou, hostiteľom a stranou má väčšiu cenu než zoznam nastavení, ktoré niekto zmenil, pretože práve túto poznámku dokáže ďalší človek zopakovať.

Súvisiace články