Dockerin ja DevOpsin perusteet · Oppitunti

Monivaiheiset koonnit ja pienemmät näköistiedostot

Opitte, miten monivaiheisten Dockerfile-tiedostojen avulla voidaan toimittaa kevyitä tuotantonäköistiedostoja erottamalla koontityökalut lopullisesta suoritusympäristöstä, mikä pienentää näköistiedoston kokoa merkittävästi.

Oppitunti 4/413 vaihetta

Monivaiheiset koonnit ja pienemmät näköistiedostot on ilmainen Dockerin ja DevOpsin perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Dockerin ja DevOpsin perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Dockerin ja DevOpsin perusteet-kurssilla on yhteensä 4 oppituntia.

Miksi imagen koolla on väliä

Suuret imaget ovat hitaita rakentaa, siirtää ja ladata, ja ne tarjoavat hyökkääjille suuremman hyökkäyspinta-alan. Hyvä suunnittelutavoite on julkaista pienin image, jolla sovellus toimii.

Turhan sisällön ongelma

Sovelluksen rakentaminen vaatii usein kääntäjiä, kehitysriippuvuuksia ja rakennustyökaluja. Jos ne päätyvät lopulliseen imageen, sen koko kasvaa huomattavasti, vaikka käynnissä oleva sovellus ei tarvitse niistä yhtäkään.

Mikä on monivaiheinen build

Monivaiheinen build käyttää yhdessä Dockerfilessä useita FROM-lauseita. Varhaiset vaiheet rakentavat sovelluksen, ja viimeinen vaihe kopioi vain valmiit tuotokset jättäen rakennustyökalut pois.

Vaiheen nimeäminen

Nimeä vaihe komennolla AS, jotta myöhemmät vaiheet voivat viitata siihen.

FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci

Rakentaminen ensimmäisessä vaiheessa

Build-vaihe kääntää tai paketoi sovelluksen. Tässä vaiheessa kaikki kehitysriippuvuudet ja työkalut ovat käytettävissä.

COPY . .
RUN npm run build

Kompakti lopullinen vaihe

Aloita viimeinen vaihe minimaalisesta base-imagesta ja kopioi sitten vain sovelluksen suorittamiseen tarvittavat tiedostot komennolla COPY --from.

FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules

Täydellinen monivaiheinen Dockerfile

Vaiheiden yhdistäminen tuottaa pienen lopullisen imagen, joka sisältää rakennetun sovelluksen mutta ei yhtäkään rakennustyökaluketjun osaa.

FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
CMD ['node', 'dist/main.js']

Pienen base-imagen valitseminen

Base-image on usein merkittävin kokoon vaikuttava tekijä. Slim- ja Alpine-versiot pienentävät imageja huomattavasti:

  • node:20 ~ suuri
  • node:20-slim ~ paljon pienempi
  • node:20-alpine ~ pienin, vain vähän kirjastoja

Vain tuotannon riippuvuudet

Jätä kehitysriippuvuudet pois runtime-imagesta. Tuotantovalitsimella asentaminen pitää testaus- ja build-paketit poissa.

RUN npm ci --omit=dev

.dockerignoren käyttäminen

.dockerignore-tiedosto pitää turhan sisällön poissa build-kontekstista, nopeuttaa buildit ja estää salaisuuksien tai valtavien hakemistojen tahattoman kopioinnin.

node_modules
.git
.env
Dockerfile
*.log

Tuloksen mittaaminen

Varmista työsi tarkistamalla imagejen koot. Hyvin rakennettu monivaiheinen image voi olla vain murto-osa naiivin yksivaiheisen imagen koosta.

docker images myapp

Pikatesti

Testaa, miten hyvin tunnet monivaiheiset buildit.

Yhteenveto

Opit julkaisemaan kompakteja Docker-imageja:

  • Monivaiheiset buildit käyttävät yhdessä Dockerfilessä useita FROM-vaiheita
  • Rakenna sovellus varhaisessa vaiheessa ja kopioi sitten COPY --from-komennolla vain tuotokset kompaktiin viimeiseen vaiheeseen
  • Valitse pienet base-imaget (slim/Alpine) ja asenna vain tuotannon riippuvuudet
  • Käytä .dockerignore-tiedostoa build-kontekstin karsimiseen

Pienemmät imaget rakentuvat nopeammin, siirtyvät tuotantoon nopeammin ja ovat turvallisempia.

Aloita maksutta

Opi Dockerin ja DevOpsin perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Monivaiheiset koonnit ja pienemmät näköistiedostot” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Dockerin ja DevOpsin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Monivaiheiset koonnit ja pienemmät näköistiedostot”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Dockerin ja DevOpsin perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Monivaiheiset koonnit ja pienemmät näköistiedostot”?

Opitte, miten monivaiheisten Dockerfile-tiedostojen avulla voidaan toimittaa kevyitä tuotantonäköistiedostoja erottamalla koontityökalut lopullisesta suoritusympäristöstä, mikä pienentää näköistiedos… Harjoittelet Dockerin ja DevOpsin perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Dockerin ja DevOpsin perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Dockerin ja DevOpsin perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Monivaiheiset koonnit ja pienemmät näköistiedostot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Dockerin ja DevOpsin perusteet-oppitunnilla?

Kyllä. Jokainen Dockerin ja DevOpsin perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Dockerfile-tiedostojen ymmärtäminen
  2. Mukautettujen Docker-imagien luominen
  3. Imagetasot ja optimointi
  4. Monivaiheiset koonnit ja pienemmät näköistiedostot
← Takaisin: Dockerin ja DevOpsin perusteet