Οι λήψεις που πετυχαίνουν στο τερματικό του container αποτελούν πραγματική απόδειξη για το περιβάλλον αυτού του τερματικού. Δεν λένε τίποτα για τη διεργασία του επεξεργαστή, τον εγκαταστάτη επεκτάσεων ή το δυαδικό αρχείο που κατεβάζει αργότερα μια επέκταση. Η αντιγραφή μεταβλητών διαμεσολαβητή ανάμεσα σε αυτά τα τρία μετατρέπει ένα αποτυχημένο αίτημα σε ένα ολόκληρο απόγευμα άσχετων αλλαγών.

Δύο περιβάλλοντα συνήθως διαφέρουν σε ακριβώς μία πτυχή. Το να βρει κανείς αυτή την πτυχή είναι ταχύτερο από το να διαβάσει δύο φορές την τεκμηρίωση του διαμεσολαβητή.

Ποια διεργασία έκανε το αποτυχημένο αίτημα

Τρία αιτήματα μπορούν να αποτύχουν κατά τη διάρκεια μίας εγκατάστασης, και το καθένα έχει τη δική του ταυτότητα δικτύου. Ο επεξεργαστής ζητά από το Marketplace μεταδεδομένα και ένα URL πακέτου και μετά κατεβάζει το πακέτο. Μόνο μετά από αυτό εκτελεί ο host επεκτάσεων κώδικα που μπορεί να κατεβάσει έναν διακομιστή γλώσσας ή δικό του δυαδικό αρχείο. Το στάδιο που έσπασε καθορίζει ποια διεργασία χρειάζεται διαμεσολαβητή, και η επιφάνεια σφάλματος σπάνια ονομάζει το στάδιο.

Ένα τερματικό που λειτουργεί αποδεικνύει ότι το container φτάνει στο διαδίκτυο, όχι ότι φτάνει ο επεξεργαστής. Διαβάστε το αρχείο καταγραφής της επέκτασης για το τελευταίο URL που επιχείρησε. Ο host που αναφέρεται εκεί προσδιορίζει τη διεργασία και την πολιτική που της εφαρμόζεται.

Ο τοπικός επεξεργαστής και το απομακρυσμένο container είναι δύο περιβάλλοντα

Σε έναν απομακρυσμένο χώρο εργασίας μια επέκταση εκτελείται στην πλευρά που δηλώνει ο τύπος της. Οι επεκτάσεις διεπαφής μένουν με τον τοπικό επεξεργαστή, ενώ οι επεκτάσεις χώρου εργασίας εκτελούνται στο container. Ένας διαμεσολαβητής που ορίζεται στο ένα είναι αόρατος για το άλλο, και μια επανάκτιση δημιουργεί το περιβάλλον του container από το αρχείο διαμόρφωσής του και όχι από ό,τι εξαγάγατε σε ένα κέλυφος. Αυτός ο διαχωρισμός εξηγεί γιατί η ίδια επέκταση εγκαθίσταται σε φορητό υπολογιστή και αποτυγχάνει στο ίδιο έργο μέσω SSH.

Διαβάστε τη θέση εγκατάστασης πριν αλλάξετε οτιδήποτε. Όταν το αρχείο καταγραφής αναφέρει απομακρυσμένη εγκατάσταση, το περιβάλλον του container είναι αυτό που μετράει.

Τοποθετήστε τον διαμεσολαβητή εκεί όπου ξεκινά το αίτημα

Για ένα Dev Container που χρειάζεται πραγματικά διαμεσολαβητή HTTP, η μεταβλητή ανήκει στη διαμόρφωση του container ώστε μια επανάκτιση να την αναπαράγει. Το παρακάτω απόσπασμα την ορίζει για εκείνο το περιβάλλον. Η διεύθυνση-σύμβολο υποκαθιστά τη δική σας πύλη, και οι εξαιρέσεις δεν είναι προαιρετικό υλικό πλήρωσης.

"containerEnv": {
  "HTTP_PROXY": "http://proxy.corp.example:8080",
  "HTTPS_PROXY": "http://proxy.corp.example:8080",
  "NO_PROXY": "localhost,127.0.0.1,.internal.example"
}

Το όνομα της μεταβλητής περιγράφει το πρωτόκολλο προορισμού, επομένως μια τιμή HTTPS_PROXY μπορεί νόμιμα να αρχίζει με http. Εφαρμόστε την αλλαγή μέσω της υποστηριζόμενης διαδρομής επανάκτισης και κρατήστε τις εξαιρέσεις, γιατί ένας διαμεσολαβητής που υποκλέπτει εσωτερικούς hosts σπάει υπηρεσίες που χρειάζεται το container.

Ξεχωρίστε τις αποτυχίες εμπιστοσύνης από τη δυνατότητα πρόσβασης

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

Η απενεργοποίηση της επαλήθευσης ή η εκτέλεση του επεξεργαστή με αυξημένα δικαιώματα δεν είναι επιδιόρθωση για απόντα διαμεσολαβητή ή απουσία αλυσίδας εμπιστοσύνης. Και τα δύο ανταλλάσσουν ένα ορατό σφάλμα με ένα σιωπηλό. Δοκιμάστε ξανά την ίδια επέκταση μετά και σημειώστε το επόμενο URL που αποτυγχάνει.

env | grep -iE '^(http|https|no)_proxy='
code --install-extension ms-python.python --force

Καταγράψτε ποια πλευρά του χώρου εργασίας παρήγαγε αυτό το URL. Μια σύντομη σημείωση με το στάδιο, τον host και την πλευρά αξίζει περισσότερο από μια λίστα ρυθμίσεων που άλλαξε κάποιος, γιατί αυτή η σημείωση είναι ό,τι μπορεί να αναπαραγάγει ο επόμενος.

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