Sobes.tech
Junior — Middle

Povedzte o svojej skúsenosti s cacheovaním v Docker a ako ste ho implementovali.

sobes.tech AI

Odpoveď od AI

V Docker je možné implementovať cache viacerými spôsobmi na zrýchlenie zostavovania a prevádzky kontajnerov:

  1. Cache vrstiev pri zostavovaní obrazu — Docker využíva cache vrstiev, aby neprestavoval nezmenené časti. Pre efektívne cacheovanie je dôležité správne štruktúrovať Dockerfile, napríklad najskôr skopírovať závislosti a potom zdrojový kód.

  2. Použitie volume pre cache — pri spustení kontajnera je možné pripojiť volume na uchovávanie cache aplikácií alebo balíkov medzi spusteniami.

  3. Cache v CI/CD — pri automatickom zostavovaní obrazov je možné ukladať cache závislostí (napríklad Maven, npm) medzi buildami.

Príklad Dockerfile s cache závislostí pre Python:

FROM python:3.9
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . ./
CMD ["python", "app.py"]

Tu sa inštalácia závislostí vykonáva pred kopírovaním zdrojového kódu, čo umožňuje využívať cache vrstiev, ak sa requirements.txt nezmenil.