window.pipedriveLeadboosterConfig = { bas: 'leadbooster-chat.pipedrive.com', företagId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = fönster if (w.LeadBooster) { console.warn('LeadBooster finns redan') } annars { w.LeadBooster = { q: [], on: funktion (n, h) { this.q.push({ t: "o", n: n, h: h }) }, trigger: funktion (n) { this.q.push({ t: 't', n: n }) }, } } })() HUR MAN DOCKER LÄRDOMAR - The Codest
Codest
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Industrier
    • Fintech & bankverksamhet
    • E-commerce
    • Adtech
    • Hälsoteknik
    • Tillverkning
    • Logistik
    • Fordon
    • IOT
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
Pil tillbaka GÅ TILLBAKA
2018-09-09
Utveckling av programvara

HUR MAN DOCKER LÄRDOM

Dawid Polchlopek

Ända sedan jag märkte att den applikation vi förberett har expanderat avsevärt har jag bestämt mig för att hitta en helt ny metod för automatisering av processen för dess lansering. Det var viktigt för mig att hitta en lösning som skulle göra det möjligt att aktivera nya funktioner isolerat.

Inledning

Att upptäcka en enklare metod för processautomatisering skulle innebära en betydande förbättring av mitt arbete och av arbetet för hela min organisation Team. Jag tänkte "Varför inte använda Docker?"

Under förberedelsefasen skapade jag två inställningar: en för frontend-applikationen och den andra för API. Nedan kan du se en presentation av vad jag har lärt mig under utvecklingsprocessen.

Det första problemet

Jag vill ha ett klonat repository i containern, så jag lade till en ssh-nyckel via kommandot ADD i Dockerfile:

ADD ~/.ssh/testowy

Och bam! Filen hittades inte. Varför inte?

Låt oss anta att vi har följande mappstruktur:

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

Kör kommandot bygga i inloggningskö och du kan bara lägga till filer från den lokala mappen och dess lokala undermappar, t.ex. stuff.

Om du vill lägga till server kommer du att få ett meddelande: "Kan inte förbereda sammanhang"

Dockerignore

Har du någonsin undrat varför det tar så lång tid att bygga upp en bild? Du kanske inte använde .dockerignore, för att ignorera filer som inte är nödvändiga i bilden. Den .git bör tas bort automatiskt liksom alla temporära filer.

Ordningsföljd för kommandon i Dockerfilen

Docker sparar varje rad i Dockerfile och efter byggandet sparas varje rad som ett lager. Det är mycket viktigt att inte ändra ordningen på vissa kommandon alltför ofta.

FRÅN ubuntu
KÖR apt-get install -y programvara-properties-gemensamma 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 installera -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"]

Om du t.ex. ändrar den sista raden i Dockerfile kommer alla tidigare rader att hämtas från cacheminnet medan den sista raden ändras. När du ersätter rad nr 4 kommer alla rader från rad 4 till slutet att ändras. Av den anledningen är det bra att placera kommandon som inte kommer att ändras i början av filen.

Kopiera filer till bild

Det är värt att fundera på vad en viss bild ska användas till. Om du behöver den för att starta en tjänst en gång, kopiera bara kod innehåll direkt till bilden:

KOPIERA . /arbetsdir

Tyvärr gör detta det omöjligt att redigera filer och varje gång du vill redigera din kod måste du bygga upp bilden på nytt.

Om du använder MacOS och vill använda den inbyggda avbildningen för utveckling måste du närma dig den här frågan på ett något annorlunda sätt. Om du kommer att använda volymer måste du vara beredd på att detta är en extremt långsam lösning (t.ex. kopiering av en fil från värden till behållaren sker med en hastighet av 4,5 MB/s, medan kopiering internt i behållaren sker med en hastighet som är 10-20 gånger högre). Lyckligtvis, som du kan se på länkProblemet har varit känt och lösningen är en nyckelfråga för det team som ansvarar för att utveckla Docker för Mac.

Hur kan du använda Docker för utveckling i den här situationen?

Du kan använda den för externa tjänster, t.ex. Redis/PSQL/Elasticsearch eller använda färdiga lösningar som erbjuder rsync: https://github.com/brikis98/docker-osx-dev

Sammanfattningsvis

Om du har ett stort team och vill testa en ny funktion är docker det perfekta verktyget! Men skulle jag använda det för en produktionslansering av en server? Jag är inte helt övertygad än...

Dessutom rekommenderar jag några enastående artiklar:

  • hur man testar bilder
  • något annat om Docker, men också värt att nämna
  • sist men inte minst, Docker-dokumentation

Relaterade artiklar

Utveckling av programvara

Bygg framtidssäkrade webbappar: Insikter från The Codest:s expertteam

Upptäck hur The Codest utmärker sig genom att skapa skalbara, interaktiva webbapplikationer med banbrytande teknik som ger sömlösa användarupplevelser på alla plattformar. Läs om hur vår expertis driver digital omvandling och affärsutveckling...

DEKODEST
Utveckling av programvara

Topp 10 Lettlandsbaserade mjukvaruutvecklingsföretag

Läs mer om Lettlands främsta mjukvaruutvecklingsföretag och deras innovativa lösningar i vår senaste artikel. Upptäck hur dessa teknikledare kan hjälpa till att lyfta ditt företag.

thecodest
Lösningar för företag och uppskalningsföretag

Java Software Development Essentials: En guide till framgångsrik outsourcing

Utforska denna viktiga guide om framgångsrik outsourcing av Java-programvaruutveckling för att förbättra effektiviteten, få tillgång till expertis och driva projektframgång med The Codest.

thecodest
Utveckling av programvara

Den ultimata guiden till outsourcing i Polen

Den kraftiga ökningen av outsourcing i Polen drivs av ekonomiska, utbildningsmässiga och tekniska framsteg, vilket främjar IT-tillväxt och ett företagsvänligt klimat.

TheCodest
Lösningar för företag och uppskalningsföretag

Den kompletta guiden till verktyg och tekniker för IT-revision

IT-revisioner säkerställer säkra, effektiva och kompatibla system. Läs mer om hur viktiga de är genom att läsa hela artikeln.

Codest
Jakub Jakubowicz CTO och medgrundare

Prenumerera på vår kunskapsbas och håll dig uppdaterad om expertisen från IT-sektorn.

    Om oss

    The Codest - Internationellt mjukvaruutvecklingsföretag med teknikhubbar i Polen.

    Förenade kungariket - Huvudkontor

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

    Polen - Lokala tekniknav

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

      Codest

    • Hem
    • Om oss
    • Tjänster
    • Fallstudier
    • Vet hur
    • Karriär
    • Ordbok

      Tjänster

    • Det rådgivande
    • Utveckling av programvara
    • Backend-utveckling
    • Frontend-utveckling
    • Staff Augmentation
    • Backend-utvecklare
    • Ingenjörer inom molntjänster
    • Dataingenjörer
    • Övriga
    • QA-ingenjörer

      Resurser

    • Fakta och myter om att samarbeta med en extern partner för mjukvaruutveckling
    • Från USA till Europa: Varför väljer amerikanska startup-företag att flytta till Europa?
    • Jämförelse av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinerna), Eurasien (Turkiet)
    • Vilka är de största utmaningarna för CTO:er och CIO:er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Användarvillkor för webbplatsen

    Copyright © 2025 av The Codest. Alla rättigheter reserverade.

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