Credenciais de proxy do Docker: codificação de URL e escapes de porcentagem do systemd
Codifique em porcentagem os componentes das credenciais de proxy e depois preserve esses sinais de porcentagem por meio de uma atribuição Environment do systemd.
Um nome de usuário de proxy no estilo domínio pode conter uma barra invertida, e uma senha pode conter caracteres reservados pela sintaxe de URI. Ao montar a URL do proxy, codifique esses componentes de credenciais: uma barra invertida se torna, por exemplo, %5C.
Uma atribuição Environment em um serviço systemd acrescenta outro analisador. Os sinais de porcentagem literais na configuração da unidade precisam ser duplicados:
[Service]
Environment="HTTPS_PROXY=http://DOMAIN%%5Cproxy-user:example%%[email protected]:8080"
Os valores ilustrativos representam um nome de usuário de domínio e uma senha que contém #. O systemd transforma %% em %, deixando a URL codificada para o daemon. Adicione a atribuição HTTP_PROXY correspondente se esse esquema de destino também precisar da rota.
A porcentagem dupla é sintaxe do systemd. Já o valor de proxy no daemon.json do Docker contém os escapes URI comuns, como %5C e %23. Não copie a grafia do arquivo de unidade sem alterações para o JSON nem para o campo de URL de proxy de um cliente.
Mantenha também a origem configurada à vista. O Docker documenta que a configuração de proxy do daemon tem precedência sobre as variáveis de ambiente de proxy; um valor JSON mais antigo pode, portanto, ocultar um ambiente de serviço corrigido.