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 on juba olemas') } 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 }) }, } } })() KUIDAS DOKKERI ÕPPETUND - The Codest
The Codest
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Tööstusharud
    • Fintech & pangandus
    • E-commerce
    • Adtech
    • Healthtech
    • Tootmine
    • Logistika
    • Autotööstus
    • IOT
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
Tagasi nool TAGASI
2018-09-09
Tarkvaraarendus

KUIDAS DOKKERI ÕPPETUND

Dawid Polchlopek

Kuna ma märkasin, et meie koostatud rakendus on oluliselt laienenud, otsustasin leida täiesti uue meetodi selle käivitamise protsessi automatiseerimiseks. Minu jaoks oli oluline leida lahendus, mis võimaldaks uusi funktsioone eraldi aktiveerida.

Sissejuhatus

Lihtsama protsessi automatiseerimise meetodi avastamine parandaks oluliselt nii minu kui ka kogu mu tööd. meeskond. Ma mõtlesin, et miks mitte kasutada Dockerit?"

Ettevalmistusetapis lõin kaks seadistust: ühe front-end rakenduse jaoks ja teise API jaoks. Allpool näete esitlust sellest, mida ma arendusprotsessi käigus õppisin.

Esimene probleem

Ma tahan, et konteineris oleks kloonitud repositoorium, seega lisasin Dockerfile'i käsuga ADD ssh võtme:

ADD ~/.ssh/testowy

Ja pam! Faili ei leitud. Miks?

Oletame, et meil on järgmine kaustade struktuur:

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

Käskkirja käivitamine ehitada aastal login-queue kausta ja saate lisada faile ainult kohalikust kaustast ja selle kohalikest alamkaustadest, nt stuff.

Kui soovite lisada server kausta, saate teate: "Konteksti ei ole võimalik ette valmistada"

Dockerignore

Olete kunagi mõelnud, miks pildi loomine nii kaua aega võtab? Võib-olla te ei kasutanud .dockerignore, et ignoreerida faile, mis ei ole pildil vajalikud. Veebileht .git kaust tuleks automaatselt eemaldada, nagu ka kõik ajutised failid.

Käskude järjekord Dockerfile'is

Docker salvestab iga rea Dockerfile'i kujul ja pärast ehitamist salvestatakse iga rida kihina. Väga oluline on, et teatud käskude järjekorda ei muudetaks liiga tihti.

FROM ubuntu
Käivita 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 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"]

Näiteks kui muudate Dockerfile'i viimast rida, laaditakse kõik eelnevad read vahemälust alla, samas kui viimane rida muudetakse. Kui te vahetate rea nr 4 välja, siis muudetakse kõiki ridu alates reast 4 kuni lõpuni. Seetõttu tasub käsud, mida ei muudeta, paigutada faili algusesse.

Failide kopeerimine pildile

Tasub kaaluda, milleks antud pilti kasutatakse. Kui teil on vaja seda teenuse käivitamiseks üks kord, siis kopeerige lihtsalt kood sisu otse pildile:

COPY . /workdir

Kahjuks muudab see failide redigeerimise võimatuks ja iga kord, kui soovite oma koodi muuta, peate pildi uuesti koostama.

Kui kasutate MacOS-i ja soovite kasutada ehitatud kujutist arendamiseks, peate lähenema sellele küsimusele veidi teisiti. Kui te kasutate mahuteid, siis peate olema valmis, et see on äärmiselt aeglane lahendus (nt faili kopeerimine hostilt konteinerisse toimub kiirusega 4,5 MB/s, samas kui konteineri sees kopeerimine toimub 10-20x suurema kiirusega). Õnneks, nagu näete aadressil link, on probleem teada ja selle lahendamine on Dockeri Macile arendamise eest vastutava meeskonna jaoks võtmeküsimus.

Kuidas saab Dockerit sellises olukorras arendamiseks kasutada?

Võite kasutada seda väliste teenuste jaoks, nt Redis/PSQL/Elasticsearch või kasutada valmis lahendusi, mis pakuvad rsync-i: https://github.com/brikis98/docker-osx-dev

Kokkuvõtteks

Kui teil on suur meeskond ja soovite testida uut funktsiooni, on docker ideaalne vahend! Kas ma siiski kasutaksin seda serveri tootmises käivitamiseks? Ma ei ole veel täiesti veendunud...

Lisaks sellele soovitan mõned silmapaistvad artiklid:

  • kuidas testida pilte
  • midagi muud Dockeri kohta, kuid samuti mainimist väärt
  • viimasena, kuid mitte vähemtähtsana, Dockeri dokumentatsioon

Seotud artiklid

Tarkvaraarendus

Tulevikukindlate veebirakenduste loomine: The Codest ekspertide meeskonna ülevaade

Avastage, kuidas The Codest paistab skaleeritavate, interaktiivsete veebirakenduste loomisel silma tipptehnoloogiatega, mis pakuvad sujuvat kasutajakogemust kõigil platvormidel. Saate teada, kuidas meie eksperditeadmised aitavad kaasa digitaalsele ümberkujundamisele ja äritegevusele...

THECODEST
Tarkvaraarendus

Top 10 Lätis asuvat tarkvaraarendusettevõtet

Tutvu Läti parimate tarkvaraarendusettevõtete ja nende innovaatiliste lahendustega meie viimases artiklis. Avastage, kuidas need tehnoloogiajuhid saavad aidata teie äri edendada.

thecodest
Enterprise & Scaleups lahendused

Java tarkvaraarenduse põhitõed: A Guide to Outsourcing Successfully

Tutvuge selle olulise juhendiga, kuidas edukalt outsourcing Java tarkvara arendada, et suurendada tõhusust, pääseda ligi eksperditeadmistele ja edendada projekti edu The Codest abil.

thecodest
Tarkvaraarendus

Ülim juhend Poola allhanke kohta

outsourcing kasv Poolas on tingitud majanduslikust, hariduslikust ja tehnoloogilisest arengust, mis soodustab IT kasvu ja ettevõtlussõbralikku kliimat.

TheCodest
Enterprise & Scaleups lahendused

Täielik juhend IT-auditi vahendite ja tehnikate kohta

IT-auditid tagavad turvalised, tõhusad ja nõuetele vastavad süsteemid. Lisateavet nende tähtsuse kohta leiate kogu artiklist.

The Codest
Jakub Jakubowicz CTO & kaasasutajad

Tellige meie teadmistebaas ja jääge kursis IT-sektori eksperditeadmistega.

    Meie kohta

    The Codest - rahvusvaheline tarkvaraarendusettevõte, mille tehnoloogiakeskused asuvad Poolas.

    Ühendkuningriik - peakorter

    • Büroo 303B, 182-184 High Street North E6 2JA
      London, Inglismaa

    Poola - kohalikud tehnoloogiakeskused

    • Fabryczna büroopark, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varssavi, Poola

      The Codest

    • Kodu
    • Meie kohta
    • Teenused
    • Case Studies
    • Tea kuidas
    • Karjäärivõimalused
    • Sõnastik

      Teenused

    • See nõuandev
    • Tarkvaraarendus
    • Backend arendus
    • Frontend arendus
    • Staff Augmentation
    • Backend arendajad
    • Pilveinsenerid
    • Andmeinsenerid
    • Muud
    • QA insenerid

      Ressursid

    • Faktid ja müüdid koostööst välise tarkvaraarenduspartneriga
    • USAst Euroopasse: Miks otsustavad Ameerika idufirmad Euroopasse ümber asuda?
    • Tech Offshore arenduskeskuste võrdlus: Euroopa (Poola), ASEAN (Filipiinid), Euraasia (Türgi).
    • Millised on CTO ja CIOde peamised väljakutsed?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2025 by The Codest. Kõik õigused kaitstud.

    etEstonian
    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 elGreek etEstonian