window.pipedriveLeadboosterConfig = { basis: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versie: 2, } ;(functie () { var w = venster als (w.LeadBooster) { console.warn('LeadBooster bestaat al') } anders { w.LeadBooster = { q: [], on: functie (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: functie (n) { this.q.push({ t: 't', n: n }) }, } } })() HOE DOCKER LES GELEERD - The Codest
The Codest
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Industrie
    • Fintech & Bankieren
    • E-commerce
    • Adtech
    • Gezondheidstechnologie
    • Productie
    • Logistiek
    • Automotive
    • IOT
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
Pijl terug KEREN TERUG
2018-09-09
Software Ontwikkeling

HOE DOCKER LES GELEERD

Dawid Polchlopek

Sinds ik heb gemerkt dat de applicatie die we hebben gemaakt aanzienlijk is uitgebreid, heb ik besloten om een compleet nieuwe methode te vinden voor het automatiseren van het lanceringsproces. Het was belangrijk voor mij om een oplossing te vinden die het mogelijk zou maken om nieuwe functies geïsoleerd te activeren.

Inleiding

Het ontdekken van een eenvoudigere methode voor procesautomatisering zou een aanzienlijke verbetering betekenen voor mijn werk en dat van mijn hele organisatie. team. Ik dacht: "Waarom geen Docker gebruiken?"

Tijdens de voorbereidingsfase heb ik twee setups gemaakt: een voor de front-end applicatie en een voor de API. Hieronder zie je een presentatie van wat ik tijdens het ontwikkelproces heb geleerd.

Het eerste probleem

Ik wil een gekloonde repository in de container hebben, dus ik heb een ssh sleutel toegevoegd via het ADD commando in Dockerfile:

ADD ~/.ssh/testowy

En bam! Het bestand is niet gevonden. Waarom niet?

Laten we aannemen dat we de volgende mappenstructuur hebben:

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

Opdracht uitvoeren bouwen in de login-queue map en je kunt alleen bestanden toevoegen uit de lokale map en de lokale submappen daarvan, bijvoorbeeld stuff.

Als u de server map, krijg je een bericht: "kan context niet voorbereiden".

Dockerignore

Heb je je ooit afgevraagd waarom het zo lang duurt om een afbeelding op te bouwen? Misschien heb je geen .dockerignoreom bestanden te negeren die niet nodig zijn in de afbeelding. De .git map moet automatisch worden verwijderd, evenals alle tijdelijke bestanden.

Volgorde van commando's in Dockerfile

Docker slaat elke regel op in Dockerfile en na het bouwen wordt elke regel opgeslagen als een laag. Het is erg belangrijk om de volgorde van bepaalde commando's niet te vaak te veranderen.

vanaf 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/ 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"]

Als je bijvoorbeeld de laatste regel in Dockerfile wijzigt, worden alle vorige regels uit de cache gedownload terwijl de laatste regel wordt gewijzigd. Als je regel 4 vervangt, dan worden alle regels vanaf regel 4 tot het einde gewijzigd. Daarom is het de moeite waard om commando's die niet veranderen aan het begin van het bestand te plaatsen.

Bestanden kopiëren naar een afbeelding

Het is de moeite waard om te overwegen waarvoor een bepaalde afbeelding zal worden gebruikt. Als je het nodig hebt om een service eenmalig te starten, kopieer dan gewoon de code inhoud rechtstreeks naar de afbeelding:

KOPIE . /werkdir

Helaas maakt dit het onmogelijk om bestanden te bewerken en elke keer als je je code wilt bewerken, moet je de afbeelding opnieuw bouwen.

Als je MacOS gebruikt en de gebouwde image wilt gebruiken voor ontwikkeling, dan moet je deze zaak op een iets andere manier benaderen. Als je volumes gaat gebruiken, moet je er rekening mee houden dat dit een extreem langzame oplossing is (bijvoorbeeld het kopiëren van een bestand van de host naar de container gebeurt met een snelheid van 4,5 MB/s, terwijl het kopiëren intern in de container met een 10-20x hogere snelheid gebeurt). Gelukkig, zoals je kunt zien op linkHet probleem is bekend en de oplossing ervan is de belangrijkste kwestie voor het team dat verantwoordelijk is voor de ontwikkeling van Docker voor Mac.

Hoe kun je Docker in deze situatie gebruiken voor ontwikkeling?

Je kunt het gebruiken voor externe diensten, bijvoorbeeld Redis/PSQL/Elasticsearch of kant-en-klare oplossingen gebruiken die rsync bieden: https://github.com/brikis98/docker-osx-dev

Samengevat

Als je een groot team hebt en een nieuwe functie wilt testen, is docker de ideale tool! Maar zou ik het gebruiken voor een productielancering van een server? Ik ben nog niet helemaal overtuigd...

Daarnaast raad ik een paar uitstekende artikelen aan:

  • afbeeldingen testen
  • iets anders over Docker, maar ook het vermelden waard
  • last but not least, Docker-documentatie

Verwante artikelen

Software Ontwikkeling

Bouw Toekomstbestendige Web Apps: Inzichten van The Codest's Expert Team

Ontdek hoe The Codest uitblinkt in het creëren van schaalbare, interactieve webapplicaties met geavanceerde technologieën, het leveren van naadloze gebruikerservaringen op alle platforms. Ontdek hoe onze expertise digitale transformatie en business...

DE BESTE
Software Ontwikkeling

Top 10 in Letland gevestigde bedrijven voor softwareontwikkeling

Lees meer over de beste softwareontwikkelingsbedrijven van Letland en hun innovatieve oplossingen in ons nieuwste artikel. Ontdek hoe deze technologieleiders uw bedrijf kunnen helpen verbeteren.

thecodest
Oplossingen voor ondernemingen en schaalvergroting

Essentiële Java-softwareontwikkeling: Een gids voor succesvol uitbesteden

Verken deze essentiële gids over succesvolle outsourcing Java-softwareontwikkeling om de efficiëntie te verbeteren, toegang te krijgen tot expertise en projectsucces te stimuleren met The Codest.

thecodest
Software Ontwikkeling

De ultieme gids voor outsourcing in Polen

De sterke groei van outsourcing in Polen wordt gedreven door economische, educatieve en technologische vooruitgang, die IT-groei en een bedrijfsvriendelijk klimaat stimuleert.

DeCodest
Oplossingen voor ondernemingen en schaalvergroting

De complete gids voor IT-auditmiddelen en -technieken

IT-audits zorgen voor veilige, efficiënte en compliant systemen. Lees het volledige artikel om meer te weten te komen over het belang ervan.

The Codest
Jakub Jakubowicz CTO & medeoprichter

Abonneer je op onze kennisbank en blijf op de hoogte van de expertise uit de IT-sector.

    Over ons

    The Codest - Internationaal softwareontwikkelingsbedrijf met technische hubs in Polen.

    Verenigd Koninkrijk - Hoofdkantoor

    • Kantoor 303B, 182-184 High Street North E6 2JA
      Londen, Engeland

    Polen - Lokale technologieknooppunten

    • Fabryczna kantorenpark, Aleja
      Pokoju 18, 31-564 Krakau
    • Hersenambassade, Konstruktorska
      11, 02-673 Warschau, Polen

      The Codest

    • Home
    • Over ons
    • Diensten
    • Case Studies
    • Weten hoe
    • Carrière
    • Woordenboek

      Diensten

    • Het advies
    • Software Ontwikkeling
    • Backend ontwikkeling
    • Frontend ontwikkeling
    • Staff Augmentation
    • Backend ontwikkelaars
    • Cloud Ingenieurs
    • Gegevensingenieurs
    • Andere
    • QA ingenieurs

      Bronnen

    • Feiten en fabels over samenwerken met een externe partner voor softwareontwikkeling
    • Van de VS naar Europa: Waarom Amerikaanse startups besluiten naar Europa te verhuizen
    • Tech Offshore Ontwikkelingshubs Vergelijking: Tech Offshore Europa (Polen), ASEAN (Filippijnen), Eurazië (Turkije)
    • Wat zijn de grootste uitdagingen voor CTO's en CIO's?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Gebruiksvoorwaarden website

    Copyright © 2025 door The Codest. Alle rechten voorbehouden.

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