Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 projektdevcontainer.jsonfá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ó:
- A
devproxy cert ensureelemet távoli felhasználóként futtatja, hogy a konténerhez egyedi főtanúsítványt hozzon létre. - 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.