Pentru descărcarea pachetelor în timpul unui build, folosește intrările proxy predefinite din Docker în loc să salvezi o rută temporară în ENV din Dockerfile. O invocare POSIX poate furniza:

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 .

Înlocuiește endpointul din documentație. Dacă omiți valorile după numele --build-arg, acestea sunt preluate din mediul acestei invocări. Declarațiile ARG corespunzătoare nu sunt necesare pentru aceste intrări predefinite.

Docker exclude aceste argumente proxy din tratarea cache-ului de build și din docker history în mod implicit. Referirea lor explicită în Dockerfile schimbă acest comportament, așa că nu adăuga declarații doar pentru că un alt exemplu de argument de build o face.

Procesul primește totuși valorile. Un URL autentificat poate scăpa prin mediu afișat, jurnale, configurație copiată sau operații ulterioare asupra imaginii, chiar dacă o vizualizare a istoricului îl omite. ENV din Dockerfile face o rută parte din mediul imaginii finale și poate transforma un proxy folosit doar la build într-o dependență pentru fiecare container.

Când o comandă are nevoie de material sensibil, montările de secrete BuildKit oferă o interfață de secrete la momentul buildului. Limitează acreditarea la acea operațiune; nu afișa montarea și nu copia conținutul ei într-un strat de imagine.

Aceste intrări de build nu configurează nici descărcarea anterioară din registru a daemonului nici ruta gazdă a unui builder la distanță inaccesibil. După aceea, inspectează imaginea finală dorită și configurația aplicației pentru valori proxy persistente, în loc să presupui că tratarea intrărilor temporare a eliminat fiecare copie.

Articole similare