Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In één oogopslag
Doel: Dev Proxy installeren in een dev-container of GitHub Codespaces
Tijd: 10 minuten
Vereisten: Een project met eendevcontainer.jsonbestand, Docker of GitHub Codespaces
Als u ontwikkelt in een dev-container of in GitHub Codespaces, kunt u Dev Proxy installeren met behulp van de functie Dev Proxy Dev Container. De functie installeert Dev Proxy in de container en genereert, nadat de container is gemaakt, een Dev Proxy-basiscertificaat dat uniek is voor de container en markeert het als vertrouwd. U hoeft niet de stappen voor de eerste keer opstarten uit te voeren om het certificaat zelf te vertrouwen.
De functie Dev Proxy toevoegen aan uw dev-container
Als u Dev Proxy wilt installeren in uw dev-container, voegt u de functie Dev Proxy toe aan de features sectie van uw .devcontainer/devcontainer.json bestand:
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {}
}
}
Bouw de container opnieuw of maak een nieuwe codespace om de wijziging toe te passen. Nadat de container is gestart, controleert u of dev proxy is geïnstalleerd:
devproxy --version
Note
De functie wordt afzonderlijk van Dev Proxy geversied.
ghcr.io/dotnet/dev-proxy/dev-proxy:1 verwijst naar versie 1 van de Feature. Als u wilt kiezen welke versie van Dev Proxy u wilt installeren, gebruikt u de version optie.
Functie configureren
De functie ondersteunt de volgende opties:
| Option | Description | Type | Default |
|---|---|---|---|
version |
Dev Proxy-versie die moet worden geïnstalleerd: latest, betaof een specifieke versie zoals 4.0.0 of v4.0.0. |
string | latest |
trustCertificate |
Nadat de container is gemaakt, genereer een Dev Proxy-basiscertificaat dat uniek is voor de container en vertrouw het systeembreed en voor gangbare runtimes. | boolean | true |
Als u bijvoorbeeld een specifieke versie van Dev Proxy wilt installeren, gebruikt u de volgende configuratie:
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {
"version": "4.0.0"
}
}
}
Als u de nieuwste preview-functies wilt proberen, stelt u version in op beta. Wanneer u een bètaversie installeert, wordt met de functie ook de devproxy-beta opdracht toegevoegd.
Als u Dev Proxy gebruikt in een configuratie van een gedeelde dev-container, kunt u overwegen dev-proxy vast te maken aan een specifieke versie, in plaats van latest of beta. Op deze manier zorgt u ervoor dat iedereen die aan het project werkt, dezelfde versie van Dev Proxy gebruikt.
Hoe de functie het rootcertificaat verwerkt
Dev Proxy gebruikt een rootcertificaat om HTTPS-verkeer te ontsleutelen. De functie genereert het certificaat niet wanneer de image wordt gebouwd. Als dat zou gebeuren, zouden het certificaat en de persoonlijke sleutel uiteindelijk in een afbeeldingslaag terechtkomen en iedereen die dezelfde image of Codespaces-prebuild gebruikt, dezelfde vertrouwde certificeringsinstantie delen.
In plaats daarvan is, nadat de container is gemaakt (postCreateCommand), de Feature:
- Wordt als de externe gebruiker uitgevoerd
devproxy cert ensureom een rootcertificaat te genereren dat uniek is voor de container. - Voegt het certificaat toe aan het certificaatarchief van het systeem (
/usr/local/share/ca-certificates), zodat curl, .NET en andere hulpprogramma's die het systeemarchief gebruiken het certificaat vertrouwen.
Sommige runtimes gebruiken het certificaatarchief van het systeem niet, dus met de functie worden de volgende omgevingsvariabelen ingesteld om ze naar de systeem-CA-bundel (/etc/ssl/certs/ca-certificates.crt) te laten verwijzen:
| Variabel | Wordt gebruikt door |
|---|---|
NODE_EXTRA_CA_CERTS |
Node.js |
REQUESTS_CA_BUNDLE |
Python requests |
SSL_CERT_FILE |
Python en andere op OpenSSL gebaseerde hulpprogramma's |
Als u het certificaat wilt vertrouwen, installeert de functie een door root beheerd helperscript en mag de externe gebruiker het met sudo zonder wachtwoord uitvoeren. Als u niet wilt dat de functie het certificaat automatisch genereert en vertrouwt, stelt u trustCertificate in op false:
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {
"trustCertificate": false
}
}
}
Important
De functie configureert geen Java-keystores, zodat Java-apps het basiscertificaat van de Dev Proxy niet vertrouwen.
Python 3.13 en nieuwer maakt strikte certificaatverificatie mogelijk. Hierdoor worden de certificaten geweigerd die Dev Proxy v3 en eerder voor onderschepte hosts genereert. Als u API's wilt aanroepen via Dev Proxy vanaf Python 3.13 of hoger, gebruikt u Dev Proxy v4 of hoger.
Dev Proxy gebruiken in de dev-container
De functie start Dev Proxy niet en stelt de HTTPS_PROXY- of HTTP_PROXY-omgevingsvariabelen niet in voor de hele container. Proxyvariabelen voor de hele container routeren pakketbeheerders, git en VS Code's eigen verkeer via Dev Proxy, waardoor ze niet meer werken wanneer Dev Proxy niet wordt uitgevoerd.
Als u Dev Proxy wilt gebruiken, start u deze in een terminal in de dev-container met uw configuratiebestand:
devproxy --config-file .devproxy/devproxyrc.json
Configureer vervolgens de app die u test om Dev Proxy te gebruiken. Als u bijvoorbeeld aanvragen wilt routeren vanuit een Node.js-app via Dev Proxy, start u de app met de HTTPS_PROXY omgevingsvariabele:
HTTPS_PROXY=http://127.0.0.1:8000 npm start
Zie de handleiding voor uw stack voor meer informatie over het configureren van uw app voor het gebruik van Dev Proxy, zoals Dev Proxy gebruiken met Node.js toepassingen of Dev Proxy gebruiken met .NET toepassingen.
Dev Proxy Toolkit
Met de functie wordt de extensie Dev Proxy Toolkit toegevoegd aan VS Code in de dev-container. Als u de extensie niet wilt installeren, sluit u deze uit in uw devcontainer.json bestand:
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {}
},
"customizations": {
"vscode": {
"extensions": ["-garrytrinder.dev-proxy-toolkit"]
}
}
}
Ondersteunde afbeeldingen
De functie ondersteunt Debian- en Ubuntu-images op x64 en arm64. Alpine en andere op musl gebaseerde installatiekopieën worden niet ondersteund.