Por que o Testcontainers withEnv não encaminha o download de imagens por proxy
Configure o daemon do Docker para um download que falhou; as variáveis de proxy do contêiner só chegam aos programas depois que o contêiner é criado.
Se o Testcontainers falhar ao baixar uma imagem, as configurações withEnv do futuro contêiner não podem ajudar. É o daemon do Docker que faz esse download a partir do registro antes de o contêiner existir.
| Operação que falhou | Configuração de proxy a verificar |
|---|---|
| Download da imagem | O daemon do Docker usado pelo teste e a rota dele até o registro |
| Download dentro do contêiner em execução | As entradas que a aplicação suporta nesse contêiner |
| O teste Java se conecta ao Docker ou à aplicação | O cliente Java que faz essa conexão |
Para o segundo caso, adicione variáveis de ambiente à definição GenericContainer existente:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Se um download dentro do contêiner puder usar um endpoint HTTP público, preencha esses valores a partir da lista de proxies HTTP. O programa na imagem precisa ler essas variáveis. Elas não transformam um socket de banco de dados qualquer em tráfego de proxy HTTP. O endpoint também precisa ser alcançável a partir do contêiner: o 127.0.0.1 dele aponta para si mesmo.
Para o primeiro caso, encontre o ambiente Docker que o Testcontainers realmente usa. Um daemon remoto ou o Docker Desktop pode obter a configuração de uma fonte diferente do dockerd local. Mantenha os serviços de teste locais e a API do Docker nas rotas pretendidas ao adicionar um proxy padrão amplo.