window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } 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 }) }, } } })() WIE MAN DOCKT LEKTION GELERNT - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2018-09-09
Software-Entwicklung

WIE MAN DOCKT LEKTION GELERNT

Dawid Polchlopek

Seit ich festgestellt habe, dass sich die von uns vorbereitete Anwendung erheblich vergrößert hat, habe ich beschlossen, eine völlig neue Methode zur Automatisierung des Prozesses ihrer Einführung zu finden. Es war wichtig für mich, eine Lösung zu finden, die es ermöglicht, neue Funktionen isoliert zu aktivieren.

Einführung

Die Entdeckung einer einfacheren Methode der Prozessautomatisierung würde meine Arbeit und die Arbeit meiner gesamten Belegschaft erheblich verbessern. Team. Ich dachte: "Warum nicht Docker verwenden?"

Während der Vorbereitungsphase habe ich zwei Setups erstellt: eines für die Front-End-Anwendung und das andere für die API. Unten sehen Sie eine Präsentation dessen, was ich während des Entwicklungsprozesses gelernt habe.

Das erste Problem

Ich möchte ein geklontes Repository im Container haben, also habe ich einen ssh-Schlüssel über den ADD-Befehl im Dockerfile hinzugefügt:

ADD ~/.ssh/testowy

Und bam! Die Datei wird nicht gefunden. Warum?

Nehmen wir an, dass wir die folgende Ordnerstruktur haben:

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

Befehl ausführen bauen im login-queue und Sie können nur Dateien aus dem lokalen Ordner und seinen lokalen Unterordnern hinzufügen, z. B. Material.

Wenn Sie die Server werden Sie eine Meldung erhalten: "Kontext kann nicht vorbereitet werden"

Dockerignore

Haben Sie sich jemals gefragt, warum das Bild so lange braucht, um aufgebaut zu werden? Vielleicht haben Sie nicht .dockerignore, um Dateien zu ignorieren, die im Bild nicht benötigt werden. Die Website .git sollte automatisch entfernt werden, ebenso wie alle temporären Dateien.

Reihenfolge der Befehle im Dockerfile

Docker speichert jede Zeile in Form einer Dockerdatei und nach der Erstellung wird jede Zeile als Schicht gespeichert. Es ist sehr wichtig, die Reihenfolge der einzelnen Befehle nicht zu oft zu ändern.

VON ubuntu
RUN 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/ präzises Universum" >> /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"]

Wenn Sie z. B. die letzte Zeile im Dockerfile ändern, werden alle vorherigen Zeilen aus dem Cache heruntergeladen, während die letzte Zeile geändert wird. Wenn Sie die Zeile Nr. 4 ersetzen, werden alle Zeilen ab der Zeile 4 bis zum Ende geändert. Aus diesem Grund ist es sinnvoll, Befehle, die nicht geändert werden sollen, an den Anfang der Datei zu stellen.

Kopieren von Dateien in ein Image

Es lohnt sich, darüber nachzudenken, wofür ein bestimmtes Bild verwendet werden soll. Wenn Sie es benötigen, um einen Dienst einmal zu starten, kopieren Sie einfach die Code Inhalt direkt auf das Bild übertragen:

COPY . /workdir

Das macht es leider unmöglich, Dateien zu bearbeiten, und jedes Mal, wenn Sie Ihren Code bearbeiten wollen, müssen Sie das Bild neu erstellen.

Wenn Sie MacOS verwenden und das erstellte Image für die Entwicklung nutzen wollen, müssen Sie diese Angelegenheit etwas anders angehen. Wenn Sie Volumes verwenden, müssen Sie sich darauf einstellen, dass dies eine extrem langsame Lösung ist (z.B. wird das Kopieren einer Datei vom Host in den Container mit einer Geschwindigkeit von 4,5 MB/s durchgeführt, während das Kopieren innerhalb des Containers mit einer 10-20x höheren Geschwindigkeit erfolgt). Glücklicherweise, wie Sie sehen können unter LinkDas Problem ist bekannt, und seine Lösung ist das Hauptanliegen des Teams, das für die Entwicklung von Docker für Mac zuständig ist.

Wie können Sie Docker in dieser Situation für die Entwicklung nutzen?

Sie können es für externe Dienste, z.B. Redis/PSQL/Elasticsearch nutzen oder fertige Lösungen verwenden, die rsync anbieten: https://github.com/brikis98/docker-osx-dev

Zusammenfassend

Wenn Sie ein großes Team haben und eine neue Funktion testen wollen, ist Docker das ideale Werkzeug! Aber würde ich es für einen Produktionsstart eines Servers verwenden? Ich bin noch nicht ganz überzeugt...

Außerdem empfehle ich einige herausragende Artikel:

  • wie man Bilder testet
  • etwas anderes über Docker, aber auch erwähnenswert
  • und nicht zuletzt die Docker-Dokumentation

Ähnliche Artikel

Software-Entwicklung

Zukunftssichere Web-Apps bauen: Einblicke vom The Codest-Expertenteam

Entdecken Sie, wie sich The Codest bei der Erstellung skalierbarer, interaktiver Webanwendungen mit Spitzentechnologien auszeichnet, die nahtlose Benutzererfahrungen auf allen Plattformen bieten. Erfahren Sie, wie unsere Expertise die digitale Transformation und...

DAS SCHÖNSTE
Software-Entwicklung

Top 10 Softwareentwicklungsunternehmen in Lettland

Erfahren Sie in unserem neuesten Artikel mehr über die besten Softwareentwicklungsunternehmen Lettlands und ihre innovativen Lösungen. Entdecken Sie, wie diese Technologieführer Ihr Unternehmen voranbringen können.

thecodest
Enterprise & Scaleups Lösungen

Grundlagen der Java-Softwareentwicklung: Ein Leitfaden für erfolgreiches Outsourcing

Entdecken Sie diesen wichtigen Leitfaden zum erfolgreichen Outsourcing der Java-Softwareentwicklung, um die Effizienz zu steigern, auf Fachwissen zuzugreifen und den Projekterfolg mit The Codest voranzutreiben.

thecodest
Software-Entwicklung

Der ultimative Leitfaden für Outsourcing in Polen

Der Anstieg des Outsourcings in Polen wird durch wirtschaftliche, bildungspolitische und technologische Fortschritte angetrieben, die das IT-Wachstum und ein unternehmensfreundliches Klima fördern.

TheCodest
Enterprise & Scaleups Lösungen

Der vollständige Leitfaden für IT-Audit-Tools und -Techniken

IT-Audits gewährleisten sichere, effiziente und gesetzeskonforme Systeme. Erfahren Sie mehr über ihre Bedeutung, indem Sie den vollständigen Artikel lesen.

Der Codest
Jakub Jakubowicz CTO & Mitbegründer

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

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