Pular para conteúdo

Exercícios: Docker e Deploy 🐳

Instruções

Prepare sua aplicação para o mundo real usando containers.


🟢 Nível: Básico

  1. Dockerfile: Crie um arquivo Dockerfile simples para um "Hello World" em Go.
  2. Imagens: Use o comando docker build para criar a imagem e docker images para verificar o tamanho dela.

🟡 Nível: Intermediário

  1. Multi-Stage: Refatore seu Dockerfile para usar Multi-Stage Build e compare a diferença de tamanho entre a imagem de build e a imagem final.
  2. Execução: Suba um container rodando sua aplicação na porta 9000 e verifique se consegue acessá-la de fora do container.

🔴 Nível: Desafio

5. Compose Completo: Crie um arquivo docker-compose.yml que suba sua API (da aula 12) e um banco de dados PostgreSQL. Garante que a API espere o banco de dados estar pronto antes de tentar conectar.

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Dockerfile **Resolução e Implementação:**
// Estrutura de implementação recomendada para Dockerfile
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Docker e Deploy**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Imagens **Resolução e Implementação:**
// Estrutura de implementação recomendada para Imagens
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Docker e Deploy**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Multi-Stage **Resposta Comentada:** - **Fundamentação:** No contexto de **Docker e Deploy**, o conceito abordado (Multi-Stage) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Execução **Resposta Comentada:** - **Fundamentação:** No contexto de **Docker e Deploy**, o conceito abordado (Execução) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Compose Completo **Resolução e Implementação:**
// Estrutura de implementação recomendada para Compose Completo
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Docker e Deploy**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.