Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
En un clin d’œil
Objectif : Installer le proxy de développement dans un conteneur de développement ou GitHub Codespaces
Heure : 10 minutes
Conditions préalables : Un projet avec un fichierdevcontainer.json, Docker ou GitHub Codespaces
Si vous développez dans un conteneur de développement ou dans GitHub Codespaces, vous pouvez installer Dev Proxy à l’aide de la fonctionnalité Dev Proxy Dev Container Feature. La fonctionnalité installe Dev Proxy dans le conteneur et, une fois le conteneur créé, génère un certificat racine Dev Proxy unique au conteneur et l’ajoute aux autorités de confiance. Vous n’avez pas besoin de suivre les étapes du premier lancement pour faire confiance au certificat vous-même.
Ajouter la fonctionnalité Dev Proxy à votre conteneur de développement
Pour installer Dev Proxy dans votre conteneur de développement, ajoutez la fonctionnalité Dev Proxy à la section features de votre fichier .devcontainer/devcontainer.json :
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {}
}
}
Régénérez le conteneur ou créez un nouveau codespace pour appliquer la modification. Une fois le conteneur démarré, vérifiez que Dev Proxy est installé :
devproxy --version
Note
La fonctionnalité est versionnée séparément de Dev Proxy.
ghcr.io/dotnet/dev-proxy/dev-proxy:1 fait référence à la version 1 de la fonctionnalité. Pour choisir la version de Dev Proxy à installer, utilisez l’option version.
Configurer la fonctionnalité
La fonctionnalité prend en charge les options suivantes :
| Option | Description | Type | Default |
|---|---|---|---|
version |
Version du proxy de développement à installer : latest, betaou une version spécifique comme 4.0.0 ou v4.0.0. |
string | latest |
trustCertificate |
Une fois le conteneur créé, générez un certificat racine Dev Proxy unique au conteneur et ajoutez-le aux autorités de confiance à l’échelle du système et pour les runtimes courants. | boolean | true |
Par exemple, pour installer une version spécifique de Dev Proxy, utilisez la configuration suivante :
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {
"version": "4.0.0"
}
}
}
Pour essayer les dernières fonctionnalités en préversion, définissez version sur beta. Lorsque vous installez une version bêta, la fonctionnalité ajoute également la commande devproxy-beta.
Si vous utilisez Dev Proxy dans une configuration de conteneur de développement partagé, envisagez d’épingler Dev Proxy à une version spécifique, au lieu de latest ou beta. Ainsi, vous vous assurez que tout le monde travaillant sur le projet utilise la même version de Dev Proxy.
Comment la fonctionnalité gère le certificat racine
Le proxy de développement utilise un certificat racine pour déchiffrer le trafic HTTPS. La fonctionnalité ne génère pas le certificat lors de la génération de l’image. Si c’était le cas, le certificat et sa clé privée se retrouvent dans une couche image, et tout le monde utilisant la même image ou codespaces prébuild partagerait la même autorité de certification de confiance.
Au lieu de cela, une fois le conteneur créé (postCreateCommand), la Fonctionnalité :
- Exécute
devproxy cert ensureen tant qu’utilisateur distant pour générer un certificat racine unique au conteneur. - Ajoute le certificat au magasin de certificats système (
/usr/local/share/ca-certificates), de sorte que curl, .NET et d’autres outils qui utilisent le magasin système lui font confiance.
Certains runtimes n’utilisent pas le magasin de certificats système. Par conséquent, la fonctionnalité définit les variables d’environnement suivantes pour les pointer vers le bundle d’autorité de certification système (/etc/ssl/certs/ca-certificates.crt) :
| Variable | Utilisé par |
|---|---|
NODE_EXTRA_CA_CERTS |
Node.js |
REQUESTS_CA_BUNDLE |
Python requests |
SSL_CERT_FILE |
Python et d’autres outils OpenSSL |
Pour faire confiance au certificat, la fonctionnalité installe un script d’assistance appartenant à la racine et permet à l’utilisateur distant de l’exécuter avec sudo sans mot de passe. Si vous ne souhaitez pas que la fonctionnalité génère et fasse confiance au certificat, définissez trustCertificate sur false:
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {
"trustCertificate": false
}
}
}
Important
La fonctionnalité ne configure pas les magasins de clés Java. Par conséquent, les applications Java n'approuvent pas le certificat racine du proxy de développement.
Python 3.13 et les versions ultérieures permettent une vérification stricte des certificats, qui rejette les certificats que Dev Proxy v3 et les versions antérieures génèrent pour les hôtes interceptés. Pour appeler des API via le proxy de développement à partir de Python 3.13 ou version ultérieure, utilisez Dev Proxy v4 ou version ultérieure.
Utiliser Dev Proxy dans le conteneur de développement
La fonctionnalité ne démarre pas Dev Proxy et ne définit pas les variables d’environnement HTTP_PROXY ou HTTPS_PROXY pour l’ensemble du conteneur. Les variables proxy à l’échelle du conteneur achemineraient les gestionnaires de packages, git et VS Code par le biais de Dev Proxy, ce qui les interrompt lorsque Dev Proxy n’est pas en cours d’exécution.
Pour utiliser Dev Proxy, démarrez-le dans un terminal dans le conteneur de développement avec votre fichier de configuration :
devproxy --config-file .devproxy/devproxyrc.json
Ensuite, configurez l’application que vous testez pour utiliser le proxy de développement. Par exemple, pour acheminer les demandes d’une application Node.js via le proxy de développement, démarrez l’application avec la variable d’environnement HTTPS_PROXY :
HTTPS_PROXY=http://127.0.0.1:8000 npm start
Pour plus d’informations sur la configuration de votre application pour utiliser Dev Proxy, consultez le guide de votre pile, par exemple Utiliser Dev Proxy avec des applications Node.js ou Utiliser Dev Proxy avec des applications .NET.
Kit de ressources du proxy de développement
La fonctionnalité ajoute l’extension Dev Proxy Toolkit à VS Code dans le conteneur de développement. Si vous ne souhaitez pas installer l’extension, excluez-la dans votre fichier devcontainer.json :
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {}
},
"customizations": {
"vscode": {
"extensions": ["-garrytrinder.dev-proxy-toolkit"]
}
}
}
Images prises en charge
La fonctionnalité prend en charge les images Debian et Ubuntu sur x64 et arm64. Les images Alpine et autres images basées sur musl ne sont pas prises en charge.