Blocco A · Fondamenta Docker — Modulo 2 di 16

Immagini e Dockerfile

Obiettivi di oggi

Il Dockerfile: la ricetta

FROM python:3.12          # da dove parto
WORKDIR /app              # dove lavoro
COPY requirements.txt .   # porto dentro i file
RUN pip install -r requirements.txt   # eseguo in fase di BUILD
COPY app.py .
EXPOSE 5000               # documento la porta
CMD ["python", "app.py"]  # cosa parte a RUNTIME

RUN = durante la build · CMD = all'avvio del container

Layer e cache

Build, tag, run

docker build -t pratiche/api:0.1.0 api/
docker image ls pratiche/api
docker history pratiche/api:0.1.0     # i layer, uno per istruzione
docker run -d --name api -p 5000:5000 pratiche/api:0.1.0
curl http://localhost:5000/api/pratiche

L'immagine è l'unità di rilascio

Laboratorio (2h)

  1. L'API Pratiche è fornita (Flask, archivio in memoria): leggila, avviala
  2. Scrivi il Dockerfile, builda pratiche/api:0.1.0, prova GET e POST
  3. Esperimenti sulla cache: modifica codice vs modifica requirements

Riepilogo e prossimo passo