window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } 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 }) }, } } })() HVORDAN MAN DOCKER LEKTION LÆRT - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2018-09-09
Udvikling af software

HVORDAN MAN DOCKER LEKTION LÆRT

Dawid Polchlopek

Lige siden jeg bemærkede, at den applikation, vi udarbejdede, er blevet udvidet betydeligt, har jeg besluttet at finde en helt ny metode til automatisering af processen med at lancere den. Det var vigtigt for mig at finde en løsning, som ville gøre det muligt at aktivere nye funktioner isoleret.

Introduktion

At opdage en enklere metode til procesautomatisering ville være en betydelig forbedring af mit arbejde såvel som hele mit arbejde. hold. Jeg tænkte: "Hvorfor ikke bruge Docker?"

I forberedelsesfasen oprettede jeg to opsætninger: en til frontend-applikationen og en anden til API. Nedenfor kan du se en præsentation af, hvad jeg har lært i løbet af udviklingsprocessen.

Det første problem

Jeg vil gerne have et klonet repository i containeren, så jeg tilføjede en ssh-nøgle via ADD-kommandoen i Dockerfile:

ADD ~/.ssh/testowy

Og bum! Filen blev ikke fundet. Hvorfor ikke?

Lad os antage, at vi har følgende mappestruktur:

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

Kør kommandoen bygge i login-kø mappen, og du kan kun tilføje filer fra den lokale mappe og dens lokale undermapper, f.eks.

Hvis du vil tilføje Server mappe, vil du modtage en besked: "Kan ikke forberede kontekst"

Dockerignore

Har du nogensinde undret dig over, hvorfor det tager så lang tid at opbygge et billede? Måske har du ikke brugt .dockerignorefor at ignorere filer, som ikke er nødvendige i billedet. Den .git mappen bør fjernes automatisk, og det samme gælder alle midlertidige filer.

Rækkefølgen af kommandoer i Dockerfilen

Docker gemmer hver linje i Dockerfile, og efter opbygningen gemmes hver linje som et lag. Det er meget vigtigt ikke at ændre rækkefølgen af bestemte kommandoer for ofte.

FRA ubuntu
KØR 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
KØR apt-get update
KØR apt-get install -y nodejs
KØR apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
KØR mkdir /var/www

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

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

Hvis du f.eks. ændrer den sidste linje i Dockerfile, vil alle tidligere linjer blive downloadet fra cachen, mens den sidste linje vil blive ændret. Når du udskifter linje 4, vil alle linjer fra linje 4 til slutningen blive ændret. Derfor er det en god idé at placere kommandoer, som ikke skal ændres, i begyndelsen af filen.

Kopiering af filer til billedet

Det er værd at overveje, hvad et givet billede skal bruges til. Hvis du skal bruge det til at starte en tjeneste én gang, skal du bare kopiere Kode indhold direkte til billedet:

COPY . /workdir

Desværre gør det det umuligt at redigere filer, og hver gang du vil redigere din kode, er du nødt til at bygge billedet igen.

Hvis du bruger MacOS og vil bruge det indbyggede image til udvikling, skal du gribe sagen an på en lidt anden måde. Hvis du vil bruge volumener, skal du være forberedt på, at det er en ekstremt langsom løsning (f.eks. sker kopiering af en fil fra værten til containeren med en hastighed på 4,5 MB/s, mens kopiering internt i containeren sker med en hastighed, der er 10-20 gange højere). Heldigvis, som du kan se på LinkProblemet har været kendt, og løsningen er det vigtigste spørgsmål for det team, der er ansvarligt for at udvikle Docker til Mac.

Hvordan kan du bruge Docker til udvikling i denne situation?

Du kan bruge den til eksterne tjenester, f.eks. Redis/PSQL/Elasticsearch, eller bruge færdige løsninger, som tilbyder rsync: https://github.com/brikis98/docker-osx-dev

For at opsummere

Hvis du har et stort team og ønsker at teste en ny funktion, er docker det ideelle værktøj! Men ville jeg bruge det til en produktionslancering af en server? Jeg er ikke helt overbevist endnu...

Derudover anbefaler jeg et par fremragende artikler:

  • Sådan tester du billeder
  • noget andet om Docker, men også værd at nævne
  • Sidst, men ikke mindst, Docker-dokumentation

Relaterede artikler

Udvikling af software

Byg fremtidssikrede webapps: Indsigt fra The Codest's ekspertteam

Oplev, hvordan The Codest udmærker sig ved at skabe skalerbare, interaktive webapplikationer med banebrydende teknologier, der leverer sømløse brugeroplevelser på tværs af alle platforme. Lær, hvordan vores ekspertise driver digital transformation og...

DENKODEST
Udvikling af software

Top 10 Letlands-baserede softwareudviklingsvirksomheder

Læs om Letlands bedste softwareudviklingsvirksomheder og deres innovative løsninger i vores seneste artikel. Find ud af, hvordan disse teknologiledere kan hjælpe med at løfte din virksomhed.

thecodest
Løsninger til virksomheder og scaleups

Grundlæggende om Java-softwareudvikling: En guide til succesfuld outsourcing

Udforsk denne vigtige guide til vellykket outsourcing af Java-softwareudvikling for at forbedre effektiviteten, få adgang til ekspertise og skabe projektsucces med The Codest.

thecodest
Udvikling af software

Den ultimative guide til outsourcing i Polen

Den voldsomme stigning i outsourcing i Polen er drevet af økonomiske, uddannelsesmæssige og teknologiske fremskridt, der fremmer it-vækst og et erhvervsvenligt klima.

TheCodest
Løsninger til virksomheder og scaleups

Den komplette guide til IT-revisionsværktøjer og -teknikker

IT-revisioner sikrer sikre, effektive og kompatible systemer. Lær mere om deres betydning ved at læse hele artiklen.

Codest
Jakub Jakubowicz CTO og medstifter

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

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

    Polen - Lokale teknologiske knudepunkter

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

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

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