Tenere le credenziali proxy di build fuori dalle immagini Docker
Usa consapevolmente gli input proxy di build predefiniti di Docker ed evita di trasformare segreti temporanei in valori persistenti dell’ambiente dell’immagine.
Per scaricare pacchetti durante una build, usa gli input proxy predefiniti di Docker invece di salvare una route temporanea in ENV del Dockerfile. Un’invocazione POSIX può fornire:
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 .Sostituisci l’endpoint della documentazione. Omettendo i valori dopo i nomi di --build-arg, questi vengono presi dall’ambiente di questa invocazione. Per questi input predefiniti non servono dichiarazioni ARG corrispondenti.
Docker esclude per impostazione predefinita questi argomenti proxy dalla gestione della cache di build e da docker history. Riferirli esplicitamente nel Dockerfile cambia questo comportamento; non aggiungere dichiarazioni solo perché lo fa un altro esempio di argomento di build.
Il processo riceve comunque i valori. Un URL autenticato può fuoriuscire tramite ambiente stampato, log, configurazione copiata o operazioni successive sull’immagine, anche se una vista della cronologia lo nasconde. ENV nel Dockerfile rende la route parte dell’ambiente finale dell’immagine e può trasformare un proxy solo per la build in una dipendenza di ogni container.
Quando un comando richiede materiale sensibile, i secret mount di BuildKit forniscono un’interfaccia per segreti disponibili durante la build. Limita la credenziale a quell’operazione; non stampare il mount e non copiarne il contenuto in un layer dell’immagine.
Questi input di build non configurano né il pull precedente del registro eseguito dal daemon né la route dell’host di un builder remoto irraggiungibile. In seguito, controlla l’immagine finale prevista e la configurazione dell’applicazione per individuare valori proxy persistenti, senza presumere che la gestione temporanea abbia rimosso ogni copia.