Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
De relance
Objetivo: Instalar Dev Proxy num contentor de desenvolvimento ou em Codespaces do GitHub
Tempo: 10 minutos
Pré-requisitos: Um projeto comdevcontainer.jsonficheiro, Docker ou GitHub Codespaces
Se desenvolveres num dev container ou em Codespaces do GitHub, podes instalar o Dev Proxy usando a funcionalidade Dev Proxy Dev Container. Esta funcionalidade instala o Dev Proxy no contentor e, após a criação do contentor, gera um certificado de raiz do Dev Proxy exclusivo do contentor e adiciona o certificado como fidedigno. Não precisas de seguir os passos da primeira execução para confiares no certificado por ti próprio.
Adicione a funcionalidade Dev Proxy ao seu contentor de desenvolvimento
Para instalar o Dev Proxy no seu contentor de desenvolvimento, adicione a Funcionalidade do Dev Proxy à secção features do seu ficheiro .devcontainer/devcontainer.json:
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {}
}
}
Reconstrua o contentor ou crie um novo codespace para aplicar a alteração. Depois de o contentor iniciar, verifique se o Dev Proxy está instalado:
devproxy --version
Note
A funcionalidade é versionada separadamente do Dev Proxy.
ghcr.io/dotnet/dev-proxy/dev-proxy:1 refere-se à versão 1 da Funcionalidade. Para escolher qual versão do Dev Proxy instalar, use a version opção.
Configurar a Funcionalidade
A Funcionalidade suporta as seguintes opções:
| Option | Description | Tipo | Default |
|---|---|---|---|
version |
Versão Proxy de desenvolvimento para instalar: latest, beta, ou uma versão específica como 4.0.0 ou v4.0.0. |
cadeia (de caracteres) | latest |
trustCertificate |
Depois de criado o contentor, gerar um certificado raiz Dev Proxy único para o contentor e confiar nele em todo o sistema e para runtimes comuns. | boolean | true |
Por exemplo, para instalar uma versão específica do Dev Proxy, use a seguinte configuração:
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {
"version": "4.0.0"
}
}
}
Para experimentar as funcionalidades de pré-visualização mais recentes, defina version para beta. Quando instalas uma versão beta, a Funcionalidade também adiciona o comando devproxy-beta.
Se usar Dev Proxy numa configuração de contentor partilhado, considere fixar Dev Proxy numa versão específica, em vez de latest ou beta. Desta forma, garante-se que todos os que trabalham no projeto usam a mesma versão do Dev Proxy.
Como a funcionalidade gere o certificado raiz
O Dev Proxy utiliza um certificado raiz para desencriptar o tráfego HTTPS. A Feature não gera o certificado quando gera a imagem. Se o fizesse, o certificado e a sua chave privada acabariam numa camada de imagem, e todos os utilizadores da mesma imagem ou pré-compilação do Codespaces partilhariam a mesma autoridade certificadora de confiança.
Em vez disso, após a criação do contentor (postCreateCommand), a Funcionalidade:
- Executa-se
devproxy cert ensurecomo utilizador remoto para gerar um certificado raiz único do contentor. - Adiciona o certificado ao armazenamento de certificados do sistema (
/usr/local/share/ca-certificates), para que o curl, o .NET e outras ferramentas que utilizem a loja do sistema confiem nele.
Alguns runtimes não utilizam a loja de certificados do sistema, por isso a Feature define as seguintes variáveis de ambiente para as apontar para o pacote CA do sistema (/etc/ssl/certs/ca-certificates.crt):
| Variável | Usado por |
|---|---|
NODE_EXTRA_CA_CERTS |
Node.js |
REQUESTS_CA_BUNDLE |
Python requests |
SSL_CERT_FILE |
Python e outras ferramentas baseadas em OpenSSL |
Para confiar no certificado, a Funcionalidade instala um script auxiliar detido pela root e permite ao utilizador remoto executá-lo com sudo sem palavra-passe. Se não quiser que a Funcionalidade gere e confie no certificado, defina trustCertificate para false:
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {
"trustCertificate": false
}
}
}
Importante
A funcionalidade não configura keystores Java, por isso as aplicações Java não confiam no certificado raiz do Proxy de Desenvolvimento.
Python 3.13 e versões posteriores permitem verificação rigorosa de certificados, que rejeita os certificados que o Dev Proxy v3 e anteriores geram para hosts intercetados. Para chamar APIs através de Dev Proxy a partir de Python 3.13 ou mais recentes, use Dev Proxy v4 ou mais recente.
Utilizar o Dev Proxy no contentor de desenvolvimento
A Funcionalidade não inicia o Dev Proxy, nem define as variáveis de ambiente HTTP_PROXY ou HTTPS_PROXY para todo o contentor. As variáveis de proxy ao nível do contentor encaminhariam o tráfego dos gestores de pacotes, do git e do próprio VS Code através do Dev Proxy, o que faz com que deixem de funcionar quando o Dev Proxy não está em execução.
Para usar o Dev Proxy, inicie-o num terminal no dev container com o seu ficheiro de configuração:
devproxy --config-file .devproxy/devproxyrc.json
Depois, configura a aplicação que estás a testar para usar o Dev Proxy. Por exemplo, para encaminhar pedidos de uma Node.js app através do Dev Proxy, inicie a aplicação com a HTTPS_PROXY variável de ambiente:
HTTPS_PROXY=http://127.0.0.1:8000 npm start
Para mais informações sobre como configurar a sua aplicação para usar Dev Proxy, consulte o guia da sua stack, como Use Dev Proxy com Node.js aplicações ou Use Dev Proxy com .NET aplicações.
Pacote de Proxy de Desenvolvimento
A funcionalidade adiciona a extensão Dev Proxy Toolkit ao VS Code no contentor de desenvolvimento. Se não quiseres instalar a extensão, exclui-a no teu ficheiro devcontainer.json:
{
"features": {
"ghcr.io/dotnet/dev-proxy/dev-proxy:1": {}
},
"customizations": {
"vscode": {
"extensions": ["-garrytrinder.dev-proxy-toolkit"]
}
}
}
Imagens suportadas
A funcionalidade suporta imagens baseadas em Debian e Ubuntu em x64 e arm64. Imagens Alpine e outras baseadas em musl não são suportadas.