$ docker modulo_2
Dockerfile e imagens
Escrever Dockerfiles enxutos, multi-stage e publicar imagens locais com tags versionadas.
O que você vai aprender
- Instruções FROM, COPY, RUN, CMD, ENTRYPOINT
- Camadas e cache de build
- Multi-stage para reduzir tamanho
- Build e tag locais
1. Dockerfile mínimo (Python)
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "main.py"]
2. Multi-stage (binário Go ou front build)
FROM node:20-alpine AS build
WORKDIR /src
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:1.27-alpine
COPY --from=build /src/dist /usr/share/nginx/html
3. Build e tags
docker build -t irn/api:1.0.0 .
docker images
docker run --rm -p 8000:8000 irn/api:1.0.0
CACHE Ordene o Dockerfile do que muda menos (deps) para o que muda mais (código). Isso acelera rebuilds.
EXERCÍCIO
Crie um Dockerfile para um script Python simples, faça build com tag 0.1.0 e rode mapeando a porta.