Για λήψεις πακέτων κατά το build, χρησιμοποιήστε τις προκαθορισμένες εισόδους proxy του Docker αντί να αποθηκεύσετε προσωρινή διαδρομή στο ENV του Dockerfile. Μια κλήση POSIX μπορεί να δώσει:

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 .

Αντικαταστήστε το endpoint της τεκμηρίωσης. Αν παραλείψετε τιμές μετά τα ονόματα --build-arg, λαμβάνονται από το περιβάλλον της κλήσης. Δεν απαιτούνται δηλώσεις ARG.

Το Docker εξαιρεί από προεπιλογή αυτά τα ορίσματα proxy από τη διαχείριση cache build και από το docker history. Η ρητή αναφορά τους στο Dockerfile αλλάζει τη συμπεριφορά, γι’ αυτό μην προσθέτετε δηλώσεις μόνο επειδή το κάνει άλλο παράδειγμα.

Η διεργασία εξακολουθεί να λαμβάνει τις τιμές. Ένα URL με έλεγχο ταυτότητας μπορεί να διαρρεύσει μέσω εκτυπωμένου περιβάλλοντος, αρχείων καταγραφής, αντιγραμμένης ρύθμισης ή μεταγενέστερων ενεργειών εικόνας. Το ENV στο Dockerfile κάνει τη διαδρομή μέρος του τελικού περιβάλλοντος και μπορεί να κάνει το proxy εξάρτηση κάθε container.

Όταν μια εντολή χρειάζεται ευαίσθητο υλικό, το secret mount του BuildKit παρέχει διεπαφή μυστικού κατά το build. Περιορίστε το διαπιστευτήριο σε αυτή την ενέργεια· μην εκτυπώνετε το mount και μην αντιγράφετε το περιεχόμενό του σε layer.

Οι είσοδοι αυτές δεν ρυθμίζουν ούτε την προηγούμενη λήψη από το registry που έκανε ο daemon ούτε τη διαδρομή ενός μη προσβάσιμου απομακρυσμένου builder. Έπειτα ελέγξτε την τελική εικόνα και τη ρύθμιση της εφαρμογής για μόνιμες τιμές proxy.

Σχετικά άρθρα