Proxygegevens tijdens builds buiten Docker-images houden
Gebruik Dockers vooraf gedefinieerde proxy-invoer voor builds bewust en maak tijdelijke proxygeheimen niet tot blijvende omgevingswaarden in de image.
Gebruik voor pakketdownloads tijdens een build Dockers vooraf gedefinieerde proxy-invoer in plaats van een tijdelijke route in ENV van het Dockerfile op te slaan. Een POSIX-aanroep kan het volgende meegeven:
HTTP_PROXY=http://203.0.113.10:8080 \
HTTPS_PROXY=http://203.0.113.10:8080 \
docker build --build-arg HTTP_PROXY --build-arg HTTPS_PROXY .Vervang het documentatie-eindpunt. Als je waarden na de namen van --build-arg weglaat, worden ze uit de omgeving van deze aanroep gehaald. Voor deze vooraf gedefinieerde invoer zijn geen overeenkomende ARG-declaraties nodig.
Docker sluit deze proxyargumenten standaard uit van build-cacheverwerking en docker history. Als je ze expliciet in het Dockerfile verwijst, verandert dat gedrag. Voeg dus geen declaraties toe alleen omdat een ander build-argumentvoorbeeld dat doet.
Het proces ontvangt de waarden nog steeds. Een URL met authenticatie kan uitlekken via afgedrukte omgeving, logs, gekopieerde configuratie of latere imagebewerkingen, ook als één history-weergave de URL weglaat. ENV in het Dockerfile maakt de route onderdeel van de uiteindelijke imageomgeving en kan een proxy die alleen tijdens de build nodig is tot afhankelijkheid van elke container maken.
Wanneer een opdracht gevoelige gegevens nodig heeft, bieden BuildKit secret mounts een interface voor secrets tijdens de build. Beperk de credential tot die bewerking; druk de mount niet af en kopieer de inhoud niet naar een imagelaag.
Deze buildinvoer configureert noch de eerdere registry-pull van de daemon noch de hostroute van een onbereikbare remote builder. Controleer daarna de bedoelde uiteindelijke image en de applicatieconfiguratie op blijvende proxywaarden, zonder aan te nemen dat tijdelijke invoer elke kopie heeft verwijderd.