Τεχνολογία containerization έχει προοδεύσει σημαντικά στον τεχνολογικό χώρο της ανάπτυξης λογισμικού ως η πλέον αποδεκτή μέθοδος συσκευασίας και ανάπτυξης εφαρμογών σε περιβάλλοντα cloud. Αυτό κατέστη αναγκαίο λόγω της ανάγκης για συνεχή ενσωμάτωση (CI) και συνεχή διάθεση (CD), που αποτελούν καθοριστικές πτυχές του DevOps. Οι προγραμματιστές και οι μηχανικοί λογισμικού χρησιμοποιούν κοντέινερ για να επιτύχουν την πτυχή CI/CD της αρχιτεκτονικής λογισμικού. Ένα κοντέινερ είναι ουσιαστικά μια πλήρως συσκευασμένη, φορητή και αυτόνομη υπολογιστική πλατφόρμα. Αν και υπάρχουν διάφορες πλατφόρμες κοντέινερ στο διαδίκτυο, το Docker τυχαίνει να είναι η πιο διαδεδομένη.
Το Docker είναι μια πλατφόρμα κοντέινερ ανοιχτού κώδικα που καθιστά την ανάπτυξη αποτελεσματική και προβλέψιμη. Το Docker προσφέρει ένα δημόσιο αποθετήριο εικόνων Docker διαθέσιμο στο Docker Hub. Περιέχει πολλές εικόνες Docker ανοιχτού κώδικα για τις πιο κοινές υλοποιήσεις που μπορείτε να αντλήσετε και να χρησιμοποιήσετε. Δεδομένου ότι πρόκειται για δημόσιο αποθετήριο, είστε επίσης ελεύθεροι να προσθέσετε τις δικές σας εικόνες Docker για να τις μοιραστείτε με το κοινό. Εάν, ωστόσο, έχετε ιδιωτικό/ιδιοκτησιακό κώδικα, ίσως χρειαστεί να πληρώσετε για ένα ιδιωτικό αποθετήριο εικόνων ή να δημιουργήσετε τη δική σας υπηρεσία αποθετηρίου εικόνων. Εδώ είναι που μπαίνει στο παιχνίδι το GitLab.
GitLab είναι ένα βασισμένο στο web Git αποθετήριο που είναι κάτι περισσότερο από ένα απλό εργαλείο ελέγχου εκδόσεων. Παρέχει εργαλεία DevOps για συνεχή ενσωμάτωση και διάθεση, παρακολούθηση ζητημάτων, μητρώα εικόνων Docker και πολλά άλλα. Προσφέρει τρεις επιλογές: GitLab Community Edition (CE), GitLab Enterprise Edition (EE) και GitLab SaaS. GitLab CE and GitLab EE είναι αυτοδιαχειριζόμενες λύσεις που σας επιτρέπουν να κατεβάσετε, να εγκαταστήσετε και να διαχειριστείτε μόνοι σας το GitLab instance. GitLab SaaS φιλοξενείται από την GitLab Inc, και δεν χρειάζεται να ανησυχείτε για την εγκατάσταση οτιδήποτε προκειμένου να το χρησιμοποιήσετε.
Σε ένα προηγούμενο σεμινάριο, σας δείξαμε πώς να ρυθμίσετε ένα GitLab instance σε έναν διακομιστή CloudSigma και να φιλοξενήσετε το δικό σας Git Repository. Σας δείξαμε επίσης πώς να εφαρμόσετε αγωγούς συνεχούς ενσωμάτωσης με το GitLab runner για να δημιουργείτε και να εκτελείτε αυτόματα τις δοκιμές σας κάθε φορά που υπάρχει ένα νέο commit. Εάν δεν έχετε μελετήσει τα αναφερόμενα σεμινάρια, παρακαλούμε να το κάνετε, καθώς αποτελούν τα δομικά στοιχεία για αυτό το σεμινάριο.
Σε αυτό το σεμινάριο, θα δείξουμε πώς να δημιουργήσετε μια απλή εικόνα Docker και να τη φιλοξενήσετε με ένα self-hosted instance του GitLab (είτε χρησιμοποιείτε την Community Edition είτε την Enterprise Edition – η ροή των βημάτων είναι η ίδια).
Προαπαιτούμενα
Για να παρακολουθήσετε κάθε βήμα αυτού του σεμιναρίου, βεβαιωθείτε ότι έχετε ένα GitLab CI runner και έναν self-hosted διακομιστή GitLab όπως εξηγείται παρακάτω.
1. Ένας ασφαλής διακομιστής GitLab
Θα το χρησιμοποιήσουμε αυτό για να αποθηκεύσουμε τον πηγαίο κώδικα, να εκτελέσουμε εργασίες CI/CD και να φιλοξενήσουμε το μητρώο εικόνων Docker. Θα πρέπει να έχετε έναν διακομιστή με τουλάχιστον 2 CPU πυρήνες και 4GB μνήμης RAM όπως συνιστάται από το GitLab για την εγκατάσταση ενός αυτοδιαχειριζόμενου GitLab instance. Θα χρειαστείτε επίσης ένα καταχωρημένο όνομα τομέα που να δείχνει στον διακομιστή, καθώς θα το χρησιμοποιήσουμε για να λάβουμε ένα πιστοποιητικό SSL από το Let’s Encrypt για την ασφάλεια του διακομιστή. Παρακάτω υπάρχουν μερικοί σύνδεσμοι που μπορείτε να ακολουθήσετε για να ρυθμίσετε ένα self-hosted instance του GitLab.
- Καταχωρίστε ένα όνομα τομέα σε οποιονδήποτε καταχωρητή ονομάτων τομέα της επιλογής σας και κατευθύνετέ το στο CloudSigma.
- Ακολουθήστε αυτό το σεμινάριο για την αρχική ρύθμιση του διακομιστή Ubuntu, προσθέστε έναν μη-root χρήστη, και ενεργοποιήστε το τείχος προστασίας UFW του Ubuntu.
- Finally, follow this σεμινάριο για να εγκαταστήσετε και να ρυθμίσετε ένα self-hosted instance του GitLab.
2. Ένας GitLab CI runner
Ένας GitLab CI runner είναι απαραίτητος για την εκτέλεση αυτοματοποιημένων εργασιών έναντι των περιπτώσεων δοκιμής σας. Το σεμινάριο σχετικά με το πώς να ρυθμίσετε αγωγούς GitLab Continuous Integration στο Ubuntu 20.04 σας δίνει μια επισκόπηση του διακομιστή GitLab CI και σας δείχνει πώς να ενεργοποιείτε εργασίες. Ακολουθήστε τα βήματα στο σεμινάριο για να ρυθμίσετε την υπηρεσία GitLab CI runner εάν δεν το έχετε κάνει. Το σεμινάριο διαθέτει μια δοκιμαστική εφαρμογή Node.js με περιπτώσεις δοκιμής – θα τη χρησιμοποιήσουμε σε αυτό το σεμινάριο.
Τώρα, ας ξεκινήσουμε!
Βήμα 1: Διαμόρφωση ενός προνομιακού GitLab CI Runner
Στο σεμινάριο σχετικά με τον τρόπο ρύθμισης ενός GitLab CI Runner, διαμορφώσαμε έναν GitLab runner χρησιμοποιώντας την εντολή sudo gitlab-runner register εντολή που μας επέτρεψε να προσθέσουμε διαδραστικά τις απαιτούμενες παραμέτρους. Αν και αυτό λειτούργησε για την προηγούμενη περίπτωση χρήσης μας, η οποία ήταν η εκτέλεση builds και δοκιμών σε απομονωμένα Docker containers, ενδέχεται να μην υποστηρίζει τη δημιουργία εικόνων Docker. Η δημιουργία εικόνων Docker απαιτεί από τον runner να έχει πλήρη πρόσβαση στην υπηρεσία Docker. Μπορείτε να επιτύχετε αυτήν τη διαμόρφωση χρησιμοποιώντας την επίσημη docker-in-docker εικόνα για την εκτέλεση των εργασιών. Μια τέτοια διαμόρφωση περιλαμβάνει την παραχώρηση στον runner μιας privileged λειτουργίας εκτέλεσης.
Αν και η παραχώρηση της privileged λειτουργίας εκτέλεσης είναι απαραίτητη για τη δημιουργία εικόνων Docker, συνοδεύεται από ζητήματα ασφάλειας. Αυτό συμβαίνει επειδή καταργεί τα πλεονεκτήματα ασφαλείας των containers. Μπορεί να πιστεύετε ότι οι άλλοι Docker runners είναι ασφαλείς, αλλά τυχαίνει να έχουν τα ίδια προβλήματα, όπως εξηγείται στην επίσημη τεκμηρίωση του Docker.
Θα δημιουργήσουμε έναν άλλο runner με privileged λειτουργία εκτέλεσης. Αυτός θα είναι ένας runner ειδικός για το έργο λόγω των επιπτώσεων ασφαλείας που αναφέρθηκαν παραπάνω. Θα δέχεται εργασίες από το έργο Node Pipeline που δημιουργήσαμε στον οδηγό σχετικά με τον πώς να ρυθμίσετε συνεχή CI pipelines με το GitLab.
Το πρώτο πράγμα που πρέπει να κάνετε είναι να ελέγξετε ότι οι Shared Runners είναι απενεργοποιημένοι στο έργο. Από τη σελίδα του έργου Node Pipeline, κάντε κλικ στο Settings στο μενού κάτω αριστερά και επιλέξτε CI/CD στο υπομενού:
Βρείτε το κουμπί Expand στην ενότητα Runners και κάντε κλικ σε αυτό για να εμφανιστούν λεπτομέρειες σχετικά με τους διαθέσιμους runners:
Κάντε κλικ στον διακόπτη για Disable Shared Runners για αυτό το έργο. Εάν είχατε προσθέσει έναν runner ειδικό για το έργο στην προηγούμενη ενότητα, απενεργοποιήστε τον επίσης. Θα προσθέσουμε έναν privileged runner ειδικό για το έργο για την εκτέλεση εργασιών για αυτό το έργο. Αυτό διασφαλίζει ότι δεν θα καταλήξουμε με σφάλματα build σε περίπτωση που το GitLab αναθέσει τυχαία εργασίες σε runners που δεν είχαν καταχωρηθεί με privileged λειτουργία εκτέλεσης. Στο παραπάνω στιγμιότυπο οθόνης, κάτω από την καρτέλα Specific runners, θα πρέπει να δείτε το registration token του έργου σας. Σημειώστε το, καθώς θα το χρησιμοποιήσετε παρακάτω.
| Σημείωση: Ένας runner ειδικός για το έργο μπορεί επίσης να ανατεθεί σε άλλα έργα από την ενότητα Admin panel > Runners. Όταν επιλέγετε έναν runner από τη λίστα των runners, μεταβαίνετε στη σελίδα διαμόρφωσης του runner. Κυλήστε προς τα κάτω για να δείτε την ενότητα Restrict projects for this runner: |
Ήρθε η ώρα να ανοίξετε το τερματικό σας. Εάν δεν έχετε ακολουθήσει τα βήματα στον οδηγό σχετικά με τον τρόπο ρύθμισης GitLab Continuous Integration Pipelines στο Ubuntu 20.04, κάντε ένα διάλειμμα από αυτόν τον οδηγό και ακολουθήστε τα βήματα, ώστε να έχετε έναν διακομιστή με την υπηρεσία GitLab CI runner. Διαφορετικά, συνδεθείτε μέσω SSH στον GitLab CI runner server με τον sudo χρήστη σας για τα επόμενα βήματα.
Για να ρυθμίσετε τον privileged runner ειδικό για το έργο, εισαγάγετε την ακόλουθη εντολή στο τερματικό σας, αντικαθιστώντας το όνομα τομέα και το token εγγραφής που αντιγράψατε παραπάνω:
|
1 2 3 4 5 6 7 |
sudo gitlab-runner register -n \ --url https://your-gitlab-instance-domain.com/ \ --registration-token your-project-specifc-registration-token \ --executor docker \ --description "docker-privileged-builder" \ --docker-image "docker:latest" \ --docker-privilegedh |
Αυτό το αποτέλεσμα δείχνει μια επιτυχή εγγραφή:
Για να επαληθεύσετε ότι η παρουσία σας στο GitLab εντόπισε τον runner, επιστρέψτε στο πρόγραμμα περιήγησης και ανανεώστε τη σελίδα Settings > CI/CD. Αναπτύξτε την ενότητα Runners και θα πρέπει να δείτε τον runner σας κάτω από την ενότητα Specific Runners:
Προαιρετικά, εάν μεταβείτε στο Admin Panel (κάνοντας κλικ στο κουμπί Menu στην επάνω γραμμή και επιλέγοντας Admin), στη συνέχεια επιλέξτε Runners στις επιλογές του μενού:
Θα πρέπει να μεταβείτε σε αυτήν τη σελίδα που δείχνει όλους τους διαθέσιμους runners που είναι συνδεδεμένοι στην GitLab instance, τόσο τους κοινόχρηστους όσο και τους ειδικούς για το έργο runners:
Μέχρι αυτό το σημείο, έχετε ρυθμίσει με επιτυχία έναν runner που μπορεί να δημιουργήσει εικόνες Docker.
Step 2: Configuring GitLab’s Docker Registry
Ορισμένες κρίσιμες ροές εργασίας απαιτούν ανεξαρτησία από εξωτερικές υπηρεσίες. Εκεί είναι που το αυτοδιαχειριζόμενο Docker Registry της GitLab έρχεται να βοηθήσει. Δεν είναι μόνο ασφαλές, αλλά διασφαλίζει επίσης ότι έχετε την ευελιξία να προσαρμόζετε τις εργασίες και τα pipeline σας σύμφωνα με τις ανάγκες σας. Για να ρυθμίσετε το Docker Registry, θα τροποποιήσετε το αρχείο ρυθμίσεων του GitLab. Αρχικά, συνδεθείτε μέσω SSH στο instance του GitLab και, στη συνέχεια, ανοίξτε το αρχείο με την ακόλουθη εντολή:
|
1 |
sudo nano /etc/gitlab/gitlab.rb |
Κυλήστε προς τα κάτω μέχρι να δείτε το Container Registry Settings:
Αφαιρέστε τα σχόλια από τη γραμμή με το registry_external_url και ορίστε το στο όνομα τομέα (domain name) του δικού σας GitLab instance, καθορίζοντας τη θύρα 8888 στο τέλος:
|
1 |
registry_external_url 'https://your-gitlab-domain.com:8888' |
Στη συνέχεια, πρέπει να καθορίσουμε πού θα βρει το registry τα πιστοποιητικά Let’s Encrypt, προσθέτοντας τις ακόλουθες γραμμές. Θυμηθείτε να τις επεξεργαστείτε με το πραγματικό όνομα τομέα του δικού σας GitLab instance:
|
1 2 |
registry_nginx['ssl_certificate'] = "/etc/letsencrypt/live/your-gitlab-domain.com/fullchain.pem" registry_nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/your-gitlab-domain.com/privkey.pem" |
Mόλις τελειώσετε, αποθηκεύστε και κλείστε το αρχείο. Εισαγάγετε την ακόλουθη εντολή στο τερματικό σας για να αναδιαμορφώσετε το GitLab:
|
1 |
sudo gitlab-ctl reconfigure |
Στη συνέχεια, περιμένετε μερικά δευτερόλεπτα για να ολοκληρωθεί η εκτέλεση της εντολής. Εάν είναι επιτυχής, θα πρέπει να δείτε το ακόλουθο αποτέλεσμα:
Στη συνέχεια, πρέπει να βεβαιωθούμε ότι το τείχος προστασίας (ufw) επιτρέπει την κίνηση στη θύρα του registry που αντιστοιχίσαμε, χρησιμοποιώντας την εντολή:
|
1 |
sudo ufw allow 8888 |
Στη συνέχεια, πρέπει να δοκιμάσετε ότι το Docker Registry λειτουργεί, κάνοντας είσοδο σε αυτό από ένα άλλο μηχάνημα που έχει εγκατεστημένο το Docker, χρησιμοποιώντας την εντολή docker login. Εάν δεν είχατε εγκαταστήσει το Docker στο τοπικό σας περιβάλλον, μπορείτε να συνδεθείτε μέσω SSH στον διακομιστή GitLab CI runner, καθώς έχει ήδη εγκατεστημένο το Docker. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή, καθορίζοντας φυσικά το όνομα τομέα του δικού σας GitLab instance:
|
1 |
docker login your-gitlab-domain.com:8888 |
Το αποτέλεσμα θα εμφανίσει το μήνυμα Login Succeeded όπως αυτό:
Αυτό σημαίνει ότι το registry έχει ρυθμιστεί με επιτυχία και λειτουργεί. Όταν δημιουργείτε images, αυτά θα αποθηκεύονται τοπικά στο σύστημα αρχείων του διακομιστή GitLab. Αυτό είναι εντάξει για ένα ιδιωτικό εταιρικό registry. Ωστόσο, εάν σκοπεύετε να αφήσετε το registry σας ανοιχτό στο κοινό, ίσως χρειαστείτε μεγαλύτερο χώρο αποθήκευσης. Ευτυχώς, το GitLab προσφέρει επιλογές σύνδεσης με storage buckets. Μπορείτε να διαβάσετε περισσότερα στην επίσημη τεκμηρίωση του GitLab container registry για να δείτε πώς μπορείτε να ρυθμίσετε ένα storage bucket για το δικό σας GitLab instance.
Βήμα 3: Τροποποιήστε το αρχείο gitlab-ci.yml και δημιουργήστε ένα Docker Image
Για να προχωρήσετε με αυτό το βήμα, θα πρέπει να έχετε το έργο Node Pipeline στο δικό σας GitLab instance. Δείτε πώς εμφανίζεται το έργο στο GitLab:
Μιλήσαμε για το gitlab-ci.yml ως το αρχείο που διαβάζει ο GitLab CI runner όταν ενεργοποιείται, για να γνωρίζει πώς να χτίσει την εφαρμογή σας και να εκτελέσει αυτοματοποιημένες δοκιμές. Πρέπει να τροποποιήσουμε αυτό το αρχείο για να προσθέσουμε οδηγίες για τη δημιουργία Docker images. Μπορείτε να επιλέξετε να επεξεργαστείτε αυτό το αρχείο απευθείας μέσα από το περιβάλλον εργασίας του GitLab. Μπορείτε επίσης να το κλωνοποιήσετε στον τοπικό σας υπολογιστή και να το επεξεργαστείτε με τον αγαπημένο σας κειμενογράφο, και στη συνέχεια να κάνετε commit και git push πίσω στο GitLab. Για συντομία, θα χρησιμοποιήσουμε το GitLab instance.
Κάντε κλικ στο αρχείο για να το ανοίξετε και, στη συνέχεια, κάντε κλικ στο κουμπί Επεξεργασία :
Αυτό ανοίγει το αρχείο έτοιμο για επεξεργασία. Διαγράψτε τα πάντα από το αρχείο και προσθέστε τον ακόλουθο κώδικα:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
image: docker:20-dind services: - name: docker:20-dind alias: docker command: ["--tls=false"] stages: - build - test - release variables: TEST_IMAGE: gitlab-domain.com:8888/hackins/node_pipeline:$CI_COMMIT_REF_NAME RELEASE_IMAGE: gitlab-domain.com:8888/hackins/node_pipeline:latest DOCKER_HOST: tcp://docker:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" before_script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN gitlab-domain.com:8888 build: stage: build script: - docker build --pull -t $TEST_IMAGE . - docker push $TEST_IMAGE test: stage: test script: - docker pull $TEST_IMAGE - docker run $TEST_IMAGE npm test release: stage: release script: - docker pull $TEST_IMAGE - docker tag $TEST_IMAGE $RELEASE_IMAGE - docker push $RELEASE_IMAGE only: - master |
Ενώ προσθέτετε το παραπάνω απόσπασμα κώδικα, θυμηθείτε να ενημερώσετε το επισημασμένο μέρος με τα πραγματικά σας στοιχεία. Όταν τελειώσετε, αποθηκεύστε τις αλλαγές πατώντας το κουμπί Commit changes. Εάν εργάζεστε εκτός του GitLab, κάντε commit και push τις αλλαγές σας.
Ας καταλάβουμε τι κάνει ο κώδικας που προσθέσαμε στο αρχείο .gitlab-ci.yml. Η πρώτη γραμμή λέει στο GitLab να χρησιμοποιήσει την επίσημη εικόνα Docker-in-Docker και την προσαρτά στην υπηρεσία docker-in-docker (docker:dind). Στη συνέχεια ορίζουμε τα στάδια για build, test, και release. Το στάδιο build δημιουργεί την εικόνα χρησιμοποιώντας τις οδηγίες στο Dockerfile και στη συνέχεια την ανεβάζει στο Docker Registry το οποίο ρυθμίσαμε σε προηγούμενο βήμα.
Όταν το στάδιο build ολοκληρωθεί με επιτυχία, το στάδιο test κατεβάζει την εικόνα, την εκτελεί ως container και εκτελεί την εντολή npm test για να εκτελέσει αυτοματοποιημένες δοκιμές μέσα σε αυτό. Εάν το στάδιο test ολοκληρωθεί με επιτυχία, το στάδιο release αναλαμβάνει. Στο στάδιο release, η εικόνα κατεβαίνει και επισημαίνεται ως node_pipeline:latest. Στη συνέχεια προωθείται ξανά στο registry.
Αυτή είναι μόνο μια βασική διαμόρφωση για ένα δοκιμαστικό έργο. Για τα πραγματικά σας έργα, θα μπορούσατε να έχετε άλλα στάδια, για παράδειγμα staging, production, κ.λπ. Όταν αποθηκεύετε το αρχείο μετά την επεξεργασία, ενεργοποιείται ένα pipeline. Στη συνέχεια, ξεκινά η εκτέλεση των εργασιών. Επιστρέψτε στη σελίδα Node Pipeline. Θα πρέπει να δείτε ότι η εργασία εκτελείται αυτήν τη στιγμή:
Κάντε κλικ στο εικονίδιο ένδειξης CI για να δείτε τα διάφορα στάδια της εργασίας:
Όπως μπορείτε να δείτε από το παραπάνω στιγμιότυπο οθόνης, όλα τα στάδια ήταν επιτυχή σύμφωνα με τα πράσινα εικονίδια επιλογής. Μπορείτε να κάνετε κλικ σε κάθε στάδιο για να δείτε το αποτέλεσμα της εργασίας:
Στο αριστερό μενού, κάντε κλικ στο Packages & Registries και επιλέξτε Container Registry:
Αυτό εμφανίζει μια σελίδα που παραθέτει τις διαθέσιμες εικόνες Docker για το επιλεγμένο έργο. Η εικόνα που δημιουργήσαμε και κυκλοφορήσαμε θα πρέπει να εμφανίζεται στη λίστα με την ετικέτα assigned:
Κάντε κλικ για να εμφανίσετε τις διάφορες ετικέτες για την εικόνα:
Εάν έχετε εγκατεστημένο το Docker στο τοπικό σας περιβάλλον, μπορείτε να κάνετε pull την εικόνα και να δοκιμάσετε ότι εκτελείται όπως αναμένεται. Κάντε κλικ στο εικονίδιο Αντιγραφή δίπλα στο όνομα της ετικέτας της εικόνας. Θα αντιγράψει στο πρόχειρό σας το πλήρες όνομα της εικόνας που μπορείτε να χρησιμοποιήσετε με την εντολή docker pull:
|
1 2 |
docker pull feetspark.com:8888/hackins/node_pipeline:latest docker run -it --rm -p 8090:8090 feetspark.com:8888/hackins/node_pipeline:latest |
Οι παραπάνω εντολές θα κάνουν pull την εικόνα και θα την εκτελέσουν μέσα σε ένα container:
Η εφαρμογή εξυπηρετείται τώρα στη θύρα 8090. Αν ανοίξετε το πρόγραμμα περιήγησής σας και μεταβείτε στο your-IP-address:8090 θα πρέπει να δείτε τη σελίδα να εμφανίζεται:
Αν μπορείτε να δείτε μια τέτοια σελίδα στο πρόγραμμα περιήγησής σας, τότε έχετε δημιουργήσει με επιτυχία μια εικόνα Docker και την έχετε μοιραστεί σε ένα ιδιωτικό Docker Registry. Στο μέλλον, εάν κάνετε οποιεσδήποτε αλλαγές στο master branch, τα στάδια που ορίζονται στο .gitlab-ci.yml αρχείο θα εκτελεστούν, και αν επιτύχουν μια νέα εικόνα Docker με την ετικέτα latest θα ανακατασκευαστεί και θα προωθηθεί στο registry.
Συμπέρασμα
Σε αυτό το έργο, μάθατε πώς να προσθέτετε ένα privileged GitLab runner στην αυτοδιαχειριζόμενη παρουσία σας GitLab, ώστε να μπορείτε να δημιουργείτε εικόνες Docker. Διαμορφώσατε επίσης ένα ιδιωτικό registry εικόνων Docker για να φιλοξενεί τις εικόνες σας. Χρησιμοποιώντας το Node pipeline project, μπορέσατε να δοκιμάσετε κάθε στοιχείο της εγκατάστασης και να βεβαιωθείτε ότι συνδέθηκαν και επικοινώνησαν όπως αναμενόταν. Μόλις η εικόνα σας ήταν διαθέσιμη στο registry, μπορέσατε να την κάνετε pull και να επιβεβαιώσετε ότι εκτελέστηκε μέσα σε ένα container.
Αυτός είναι ένας εισαγωγικός οδηγός, που σας δίνει τα βασικά για να βασιστείτε. Παρακαλούμε ακολουθήστε τα επίσημα GitLab docs to learn more about GitLab. Αυτός ο σύνδεσμος μπορεί να παρέχει πληροφορίες σχετικά με το GitLab Container Registry.
Για περισσότερους πόρους σχετικά με τη χρήση του Docker, ίσως θέλετε να δείτε περισσότερους οδηγούς στο blog μας:
- Κοινή χρήση δεδομένων μεταξύ Docker Containers
- Ρύθμιση ιδιωτικού Docker Registry σε Ubuntu 18.04
- Πώς να μοιράζεστε δεδομένα μεταξύ ενός Docker Container και ενός Host
- Καθαρισμός πόρων Docker – Images, Containers και Volumes
Καλή υπολογιστική!

















Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.