Dev Proxy használata fejlesztői tárolókban és GitHub Codespacesben

Egy pillantással
Cél: Dev Proxy telepítése fejlesztői tárolóba vagy GitHub Codespacesbe
Idő: 10 perc
Előfeltételek: Egy projekt devcontainer.json fájllal, Dockerrel vagy GitHub Codespaceszel

Ha dev containerben vagy GitHub Codespacesben fejleszt, a Dev Proxy Dev Container Feature használatával telepítheti a Dev Proxyt. A funkció telepíti a Dev Proxyt a tárolóban, és a tároló létrehozása után létrehoz egy, a tárolóhoz egyedi Dev Proxy-gyökértanúsítványt, és megbízik benne. A tanúsítványban való megbízáshoz nem kell követnie az első futtatási lépéseket.

A Dev Proxy funkció hozzáadása a dev containerhez

Ha a Dev Proxyt szeretné telepíteni a fejlesztői tárolóba, adja hozzá a Dev Proxy funkciót a .devcontainer/devcontainer.json fájl features szakaszához:

{
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {
    "ghcr.io/dotnet/dev-proxy/dev-proxy:1": {}
  }
}

A módosítás alkalmazásához építse újra a tárolót, vagy hozzon létre egy új Codespace-et. A tároló elindítása után ellenőrizze, hogy telepítve van-e a Dev Proxy:

devproxy --version

Bankjegy

A szolgáltatás a Dev Proxytól külön van verziózva. ghcr.io/dotnet/dev-proxy/dev-proxy:1 az 1-es verziójú szolgáltatásra utal. Ha ki szeretné választani, hogy a Dev Proxy melyik verzióját szeretné telepíteni, használja a version lehetőséget.

A funkció konfigurálása

A funkció a következő lehetőségeket támogatja:

Option Description Típus Default
version Telepíteni kívánt fejlesztői proxyverzió: latest, betavagy egy adott verzió, például 4.0.0 vagy v4.0.0. karakterlánc latest
trustCertificate A tároló létrehozása után hozzon létre egy, a tárolóhoz egyedi Dev Proxy főtanúsítványt, és telepítse megbízhatóként rendszerszinten és a gyakori futtatókörnyezetek számára. boolean true

A Dev Proxy egy adott verziójának telepítéséhez például használja a következő konfigurációt:

{
  "features": {
    "ghcr.io/dotnet/dev-proxy/dev-proxy:1": {
      "version": "4.0.0"
    }
  }
}

A legújabb előzetes funkciók kipróbálásához állítsa a(z) version értékét beta értékre. Bétaverzió telepítésekor a funkció a devproxy-beta parancsot is hozzáadja.

Ha Dev Proxyt használ megosztott fejlesztői tárolókonfigurációban, érdemes lehet a Dev Proxyt egy adott verzióra rögzíteni ahelyett, hogy latest vagy beta. Így biztosíthatja, hogy a projekten dolgozó mindenki ugyanazt a Dev Proxy-verziót használja.

Hogyan kezeli a funkció a főtanúsítványt?

A fejlesztői proxy főtanúsítványt használ a HTTPS-forgalom visszafejtéséhez. A funkció nem hozza létre a tanúsítványt a rendszerkép létrehozásakor. Ha így lenne, a tanúsítvány és a privát kulcs egy képrétegbe kerülne, és mindenki, aki ugyanazt a rendszerképet vagy előre elkészített Codespaces-prebuildet használja, ugyanazzal a megbízható hitelesítésszolgáltatóval osztozna.

Ehelyett a tároló létrehozása (postCreateCommand) után a funkció:

  1. A devproxy cert ensure elemet távoli felhasználóként futtatja, hogy a konténerhez egyedi főtanúsítványt hozzon létre.
  2. Hozzáadja a tanúsítványt a rendszertanúsítvány-tárolóhoz (/usr/local/share/ca-certificates), így a curl, a .NET és a rendszertárolót használó egyéb eszközök megbíznak benne.

Egyes futtatókörnyezetek nem használják a rendszertanúsítvány-tárolót, ezért a funkció a következő környezeti változókat állítja be, hogy azok a rendszer CA-csomagjára mutassanak (/etc/ssl/certs/ca-certificates.crt):

Változó Használta:
NODE_EXTRA_CA_CERTS Node.js
REQUESTS_CA_BUNDLE Python requests
SSL_CERT_FILE Python és más OpenSSL-alapú eszközök

A tanúsítvány megbízhatóként való elfogadásához a funkció egy gyökértulajdonú segédszkriptet telepít, és lehetővé teszi a távoli felhasználó számára, hogy jelszó nélkül futtassa azt a(z) sudo paranccsal. Ha nem szeretné, hogy a funkció létrehozza és megbízhatónak minősítse a tanúsítványt, állítsa a trustCertificate következőre: false

{
  "features": {
    "ghcr.io/dotnet/dev-proxy/dev-proxy:1": {
      "trustCertificate": false
    }
  }
}

Important

A funkció nem konfigurálja a Java kulcstárakat, így a Java-alkalmazások nem bíznak meg a Dev Proxy főtanúsítványában.

A Python 3.13 és újabb verziók szigorú tanúsítvány-ellenőrzést tesznek lehetővé, amely elutasítja azokat a tanúsítványokat, amelyeket a Dev Proxy v3 és korábbi verziói generálnak az elfogott gazdagépekhez. Ha az API-kat a 3.13-Python vagy újabb verzióból szeretné meghívni a Dev Proxyn keresztül, használja a Dev Proxy 4-et vagy újabbat.

Dev Proxy használata a fejlesztői tárolóban

A funkció nem indítja el a Dev Proxyt, és nem állítja be a teljes tárolóra vonatkozó HTTP_PROXY vagy HTTPS_PROXY környezeti változókat. A tárolószintű proxyváltozók a csomagkezelők, a git és a VS Code saját forgalmát a Dev Proxyn keresztül irányítanák, ami megszakítja őket, ha a Dev Proxy nem fut.

A Dev Proxy használatához indítsa el egy terminálban a fejlesztői tárolóban a saját konfigurációs fájljával:

devproxy --config-file .devproxy/devproxyrc.json

Ezután konfigurálja a tesztelt alkalmazást a Dev Proxy használatára. Ha például egy Node.js-alkalmazás kéréseit Dev Proxyn keresztül szeretné átirányítani, indítsa el az alkalmazást a HTTPS_PROXY környezeti változóval:

HTTPS_PROXY=http://127.0.0.1:8000 npm start

Az alkalmazás Dev Proxy használatára való konfigurálásával kapcsolatos további információkért tekintse meg a technológiai veremhez készült útmutatót, például a Dev Proxy használata Node.js alkalmazásokkal vagy a Dev Proxy használata .NET alkalmazásokkal.

Fejlesztői proxyeszközkészlet

A funkció hozzáadja a Dev Proxy Toolkit bővítményt a VS Code-hoz a fejlesztői tárolóban. Ha nem szeretné telepíteni a bővítményt, zárja ki a devcontainer.json fájlban:

{
  "features": {
    "ghcr.io/dotnet/dev-proxy/dev-proxy:1": {}
  },
  "customizations": {
    "vscode": {
      "extensions": ["-garrytrinder.dev-proxy-toolkit"]
    }
  }
}

Támogatott képek

A funkció támogatja a Debian- és Ubuntu-alapú képeket x64-en és arm64-en. Az Alpine és más musl-alapú image-ek nem támogatottak.

Lásd még