window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster υπάρχει ήδη') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() ΠΏΣ ΝΑ DOCKER ΜΆΘΗΜΑ ΈΜΑΘΕ - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2018-09-09
Ανάπτυξη λογισμικού

ΠΏΣ ΝΑ DOCKER ΜΆΘΗΜΑ ΈΜΑΘΕ

Dawid Polchlopek

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

Εισαγωγή

Η ανακάλυψη μιας απλούστερης μεθόδου αυτοματοποίησης διαδικασιών θα αποτελούσε σημαντική βελτίωση της εργασίας μου, καθώς και της εργασίας ολόκληρης της εταιρείας μου. ομάδα. Σκέφτηκα "Γιατί να μην χρησιμοποιήσω το Docker;"

Κατά το στάδιο της προετοιμασίας, δημιούργησα δύο ρυθμίσεις: μία για την front-end εφαρμογή και μία για το API. Παρακάτω μπορείτε να δείτε μια παρουσίαση των όσων έμαθα κατά τη διάρκεια της διαδικασίας ανάπτυξης.

Το πρώτο πρόβλημα

Θέλω να έχω ένα κλωνοποιημένο αποθετήριο στο κοντέινερ, οπότε πρόσθεσα ένα κλειδί ssh μέσω της εντολής ADD στο Dockerfile:

ADD ~/.ssh/testowy

Και μπαμ! Το αρχείο δεν βρέθηκε. Γιατί;

Ας υποθέσουμε ότι έχουμε την ακόλουθη δομή φακέλων:

docker/
|-- stuff/
| |-- test.txt
|-- Dockerfile
server/
|-- data
| |-- setup.yml

Εκτέλεση εντολής χτίσει στο login-queue και μπορείτε να προσθέσετε μόνο αρχεία από τον τοπικό φάκελο και τους τοπικούς υποφακέλους του, π.χ. stuff.

Αν θέλετε να προσθέσετε το διακομιστής θα λάβετε ένα μήνυμα: "αδυναμία προετοιμασίας πλαισίου"

Dockerignore

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

Σειρά εντολών στο αρχείο Docker

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

ΑΠΟ το ubuntu
ΤΡΕΞΤΕ το apt-get install -y software-properties-common python
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
RUN apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
RUN mkdir /var/www

ADD app.js /var/www/app.js

CMD ["/usr/bin/node", "/var/www/app.js"]

Για παράδειγμα, αν αλλάξετε την τελευταία γραμμή στο Dockerfile, όλες οι προηγούμενες γραμμές θα μεταφορτωθούν από την προσωρινή μνήμη, ενώ η τελευταία γραμμή θα τροποποιηθεί. Όταν αντικαταστήσετε τη γραμμή Νο 4, τότε θα τροποποιηθούν όλες οι γραμμές που ξεκινούν από τη γραμμή 4 μέχρι το τέλος. Για το λόγο αυτό αξίζει να τοποθετείτε εντολές που δεν θα αλλάξουν, στην αρχή του αρχείου.

Αντιγραφή αρχείων σε εικόνα

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

ΑΝΤΙΓΡΑΦΟ . /workdir

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

Αν χρησιμοποιείτε MacOS και θέλετε να χρησιμοποιήσετε την ενσωματωμένη εικόνα για ανάπτυξη, πρέπει να προσεγγίσετε το θέμα με ελαφρώς διαφορετικό τρόπο. Αν θα χρησιμοποιήσετε τόμους, τότε θα πρέπει να είστε προετοιμασμένοι ότι πρόκειται για μια εξαιρετικά αργή λύση (π.χ. η αντιγραφή ενός αρχείου από τον κεντρικό υπολογιστή στο δοχείο γίνεται με ταχύτητα 4,5 MB/s, ενώ η αντιγραφή εσωτερικά στο δοχείο με ταχύτητα 10-20 φορές μεγαλύτερη). Ευτυχώς, όπως μπορείτε να δείτε στο σύνδεσμος, το πρόβλημα είναι γνωστό και η επίλυσή του είναι το βασικό ζήτημα για την ομάδα που είναι υπεύθυνη για την ανάπτυξη του Docker για Mac.

Πώς μπορείτε να χρησιμοποιήσετε το Docker για ανάπτυξη σε αυτή την περίπτωση;

Μπορείτε να το χρησιμοποιήσετε για εξωτερικές υπηρεσίες, π.χ. Redis/PSQL/Elasticsearch ή να χρησιμοποιήσετε έτοιμες λύσεις που προσφέρουν rsync: https://github.com/brikis98/docker-osx-dev

Συνοψίζοντας

Αν έχετε μια μεγάλη ομάδα και θέλετε να δοκιμάσετε ένα νέο χαρακτηριστικό, το docker θα είναι το ιδανικό εργαλείο! Παρ' όλα αυτά, θα το χρησιμοποιούσα για την έναρξη παραγωγής ενός διακομιστή; Δεν έχω πειστεί πλήρως ακόμα...

Επιπλέον, συνιστώ μερικά εξαιρετικά άρθρα:

  • πώς να δοκιμάζετε εικόνες
  • κάτι άλλο σχετικά με το Docker, αλλά αξίζει επίσης να αναφερθεί
  • τέλος, αλλά όχι λιγότερο σημαντικό, τεκμηρίωση Docker

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

Ανάπτυξη λογισμικού

Κατασκευάστε μελλοντικά ασφαλείς εφαρμογές Web: γνώσεις από την ομάδα εμπειρογνωμόνων του The Codest

Ανακαλύψτε πώς η The Codest υπερέχει στη δημιουργία κλιμακούμενων, διαδραστικών εφαρμογών ιστού με τεχνολογίες αιχμής, παρέχοντας απρόσκοπτη εμπειρία χρήστη σε όλες τις πλατφόρμες. Μάθετε πώς η τεχνογνωσία μας οδηγεί στον ψηφιακό μετασχηματισμό και την επιχειρηματική...

THECODEST
Ανάπτυξη λογισμικού

Top 10 εταιρείες ανάπτυξης λογισμικού με έδρα τη Λετονία

Μάθετε για τις κορυφαίες εταιρείες ανάπτυξης λογισμικού της Λετονίας και τις καινοτόμες λύσεις τους στο τελευταίο μας άρθρο. Ανακαλύψτε πώς αυτοί οι τεχνολογικοί ηγέτες μπορούν να βοηθήσουν στην ανύψωση της επιχείρησής σας.

thecodest
Λύσεις Enterprise & Scaleups

Βασικά στοιχεία ανάπτυξης λογισμικού Java: Α Guide to Outsourcing Successfully (Οδηγός για την επιτυχή εξωτερική ανάθεση)

Εξερευνήστε αυτόν τον βασικό οδηγό για την επιτυχή ανάπτυξη λογισμικού outsourcing Java για να αυξήσετε την αποδοτικότητα, να αποκτήσετε πρόσβαση στην τεχνογνωσία και να οδηγήσετε την επιτυχία των έργων με The Codest.

thecodest
Ανάπτυξη λογισμικού

Ο απόλυτος οδηγός για το Outsourcing στην Πολωνία

Η έξαρση της outsourcing στην Πολωνία οφείλεται στις οικονομικές, εκπαιδευτικές και τεχνολογικές εξελίξεις, που ευνοούν την ανάπτυξη της πληροφορικής και το φιλικό προς τις επιχειρήσεις κλίμα.

TheCodest
Λύσεις Enterprise & Scaleups

Ο πλήρης οδηγός εργαλείων και τεχνικών ελέγχου πληροφορικής

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

The Codest
Jakub Jakubowicz CTO & Συνιδρυτής

Εγγραφείτε στη βάση γνώσεών μας και μείνετε ενήμεροι για την τεχνογνωσία από τον τομέα της πληροφορικής.

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

    elGreek
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek