Учётные данные прокси Docker: кодирование URL и процентные escape-последовательности systemd
Закодируйте процентным кодированием компоненты учётных данных прокси, а затем сохраните эти знаки процента через присваивание Environment в systemd.
Имя пользователя прокси в доменном стиле может содержать обратную косую черту, а пароль — символы, зарезервированные синтаксисом URI. При построении URL прокси закодируйте эти компоненты учётных данных: обратная косая черта, например, становится %5C.
Присваивание Environment в службе systemd добавляет ещё один анализатор. Буквальные знаки процента в конфигурации юнита нужно удвоить:
[Service]
Environment="HTTPS_PROXY=http://DOMAIN%%5Cproxy-user:example%%[email protected]:8080"
Иллюстративные значения обозначают доменное имя пользователя и пароль, содержащий #. systemd превращает %% в %, оставляя закодированный URL демону. Добавьте соответствующее присваивание HTTP_PROXY, если эта схема назначения тоже требует маршрута.
Двойной процент — это синтаксис systemd. Значение прокси в daemon.json у Docker, напротив, содержит обычные escape-последовательности URI, например %5C и %23. Не копируйте написание из файла юнита без изменений в JSON или в поле URL прокси клиента.
Держите в поле зрения и настроенный источник. Docker документирует, что конфигурация прокси демона имеет приоритет над переменными окружения прокси; поэтому более старое значение JSON может скрывать исправленное окружение службы.