Learn Docker Help

Lab 2: Desenvolvimento com Docker πŸš€

╔═══════════════════════════════════════════════════════════╗ β•‘ LAB STATUS: INICIANDO... β•‘ β•‘ DIFICULDADE: β˜…β˜…β˜…β˜†β˜† β•‘ β•‘ TEMPO ESTIMADO: 90 minutos β•‘ β•‘ WAIFU ASSISTANT: DevOps-chan β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Objetivo do Lab 🎯

Neste laboratório de desenvolvimento, você vai:

  1. Criar um ambiente de desenvolvimento completo

  2. Trabalhar com múltiplos containers

  3. Implementar Docker Compose

  4. Desenvolver uma aplicação multi-container

Pré-requisitos πŸ“

  • [x] Lab 1 completado

  • [x] Docker Compose instalado

  • [x] Git instalado

  • [x] Editor de código

  • [x] Conhecimento básico de web development

Ambiente de Desenvolvimento πŸ› οΈ

# Verifique a instalaΓ§Γ£o do Docker Compose docker compose version # Clone o repositΓ³rio do projeto git clone https://github.com/seu-usuario/docker-lab-2 cd docker-lab-2

Estrutura do Projeto πŸ“

lab-2/ β”œβ”€β”€ frontend/ β”‚ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ package.json β”‚ └── Dockerfile β”œβ”€β”€ backend/ β”‚ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ requirements.txt β”‚ └── Dockerfile β”œβ”€β”€ database/ β”‚ └── init.sql β”œβ”€β”€ docker-compose.yml └── README.md

Exercícios πŸ“š

1. Setup do Ambiente πŸ—οΈ

# docker-compose.yml bΓ‘sico version: '3.8' services: frontend: build: ./frontend ports: - "3000:3000" backend: build: ./backend ports: - "5000:5000" db: image: postgres:13-alpine environment: POSTGRES_PASSWORD: example

2. Desenvolvimento Frontend 🎨

# frontend/Dockerfile FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["npm", "start"]

3. Desenvolvimento Backend πŸ”§

# backend/Dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python", "src/app.py"]

Desafios Extras 🌟

Nível 1: Developer πŸ’»

  • [ ] Implementar hot-reload

  • [ ] Configurar volumes de desenvolvimento

  • [ ] Adicionar linting e testes

Nível 2: Architect πŸ›οΈ

  • [ ] Implementar cache de build

  • [ ] Otimizar Dockerfiles

  • [ ] Configurar networks isoladas

Nível 3: DevOps πŸ”„

  • [ ] Setup CI/CD básico

  • [ ] Implementar health checks

  • [ ] Configurar logging centralizado

DevOps-chan Tips πŸ’‘

Troubleshooting Comum πŸ”§

Problema: Serviços não se comunicam

# Verifique as networks docker network ls # Inspecione os containers docker inspect [container-id]

Problema: Volumes não sincronizam

# Verifique os volumes docker volume ls # Verifique os binds docker compose ps

Checklist de Conclusão βœ…

Ambiente

  • [ ] Docker Compose configurado

  • [ ] Serviços rodando

  • [ ] Networks configuradas

  • [ ] Volumes montados

Desenvolvimento

  • [ ] Hot-reload funcionando

  • [ ] Logs centralizados

  • [ ] Testes implementados

  • [ ] CI/CD básico configurado

Performance

  • [ ] Build otimizado

  • [ ] Cache configurado

  • [ ] Resources limitados

  • [ ] Monitoring básico

Próximos Passos 🎯

  1. Lab 2 Setup

  2. Lab 2 Exercise

  3. Docker Compose Deep Dive

Recursos Adicionais πŸ“š

16 abril 2025