503 Μη διαθέσιμη υπηρεσία: Πώς να πείσετε το λιμενεργάτη να ενημερώσει τις εξαρτήσεις του ubuntu

Πρόσφατα, προσπαθούσα να φτιάξω ένα δοχείο docker στο MacOS μου και έτσι, αντιμετώπισα το πρόβλημα ότι το δοχείο docker δεν ήταν σε θέση να κατεβάσει τις εξαρτήσεις του ubuntu.

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

Το μήνυμα σφάλματος

Ένα από τα δοχεία docker που πήρα από τον πελάτη μου δεν βασίστηκε στη μηχανή μου. Για όλους τους άλλους συναδέλφους της ομάδας μου, λειτούργησε πολύ καλά. Αλλά ο τερματικός μου δήλωσε ότι η υπηρεσία ubuntu δεν είναι διαθέσιμη:

W: Η αποθήκη "http://security.ubuntu.com/ubuntu xenial-release Release" δεν διαθέτει αρχείο απελευθέρωσης. W: Η αποθήκη «http://archive.ubuntu.com/ubuntu xenial Release» δεν διαθέτει αρχείο απελευθέρωσης. W: Η αποθήκη "http://archive.ubuntu.com/ubuntu xenial-updates Release" δεν διαθέτει αρχείο απελευθέρωσης. W: Η αποθήκη "http://archive.ubuntu.com/ubuntu xenial-backports Release" δεν διαθέτει αρχείο απελευθέρωσης. Ε: Απέτυχε η λήψη http://security.ubuntu.com/ubuntu/dists/xenial-security/main/binary-amd64/Packages 503 Μη διαθέσιμη υπηρεσία [IP: 91.189.91.14 80] E: Αποτυχία λήψης http: // archive.ubuntu.com/ubuntu/dists/xenial/main/binary-amd64/Packages 503 Μη διαθέσιμη υπηρεσία [IP: 91.189.88.174 80] E: Αδυναμία λήψης του αρχείου http://archive.ubuntu.com/ubuntu/dists/xenial -updates / main / binary-amd64 / Πακέτα 503 Μη διαθέσιμη υπηρεσία [IP: 91.189.88.174 80] E: Αποτυχία λήψης http://archive.ubuntu.com/ubuntu/dists/xenial-backports/main/binary-amd64/ Πακέτα 503 Μη διαθέσιμη υπηρεσία [IP: 91.189.88.162 80] E: Κάποια αρχεία ευρετηρίου απέτυχαν να κατεβάσουν. Έχουν αγνοηθεί ή έχουν χρησιμοποιηθεί παλιές.

Πρώτα απ 'όλα, έλεγξα αν τα IP είναι πραγματικά προσβάσιμα από την τοπική μηχανή μου:

wget http://security.ubuntu.com/ubuntu wget http://archive.ubuntu.com/ubuntu

Και οι δύο διευθύνσεις θα μπορούσαν να επιλυθούν και να επιτευχθούν. Για να αποκλείσω πιθανή παρενέργεια από οποιαδήποτε άλλη εντολή στο Dockerfile, δημιούργησα ένα απλό αρχείο Dockerfile που δημιουργεί μόνο ένα περιβάλλον ubuntu.

ΑΠΟ το ubuntu: 16.04 RUN apt-get ενημέρωση CMD ["/ bin / bash"]

Επίσης, δεν λειτούργησε και είχε ως αποτέλεσμα τα 503 μηνύματα σφάλματος.

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

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

1. Ελέγξτε το cntlm.conf

Ελέγξτε αν μπορείτε να εντοπίσετε τυχόν ύποπτες γραμμές στο αρχείο cntlm.conf. Μπορείτε να βρείτε αυτό το αρχείο στο /usr/local/etc/cntlm.conf

2. Ελέγξτε το hostfile

Ελέγξτε το αρχείο host για παρεμβάσεις. Μπορείτε να βρείτε το αρχείο στο / etc / hosts

3. Επιλέξτε Ρυθμίσεις διακομιστή μεσολάβησης δικτύου

Μεταβείτε στις Προτιμήσεις συστήματος στο Mac. Ανοίξτε την ενότητα Δίκτυο, επιλέξτε το τρέχον δίκτυο, μεταβείτε στην επιλογή Προχωρημένους> Proxy και ελέγξτε διπλά τις ρυθμίσεις.

Ίσως ένα από τα παραπάνω βήματα ήδη λύσει το πρόβλημά σας. Στην περίπτωσή μου, δεν βοήθησε. Αφού πέρασα ώρες που ουσιαστικά ήταν γεμάτες με επανάληψη των παραπάνω βημάτων, καταλήξαμε τελικά σε μια αρκετά προφανή - αλλά για μένα πολύ κρυμμένη - τοποθεσία μου:

4. Ρυθμίσεις διακομιστή μεσολάβησης Docker Desktop

Ελέγξτε τις ρυθμίσεις διακομιστή μεσολάβησης της εφαρμογής Desktop Docker.

Εάν είναι ενεργοποιημένο το Manual Proxy, ίσως είναι αυτό. Τουλάχιστον, αυτό λύνει το πρόβλημα για μένα: το Docker δεν χρησιμοποιούσε τον πληρεξούσιο συστήματος, αλλά ένα χειροκίνητο που πρέπει να έχει ρυθμιστεί τυχαία πριν από εβδομάδες. Μετά την αλλαγή της ρύθμισης στο System Proxy, και τα δύο Dockerfiles λειτουργούσαν τέλεια.