📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Guia de Ferramentas. Recomendado revisar antes de começar.
v1.0 — DevContainers W3C, Docker, Automação de Tarefas com Make e Ambientes Herméticos
Trilha de Especialização Pedagógica — Projeto 1 de 4
- ➡️ v1 (este): Ambientes Reprodutíveis · DevContainers · Docker · Makefile Canônico
- v2: Gerenciamento de Segredos com Vault & SOPS
- v3: CLI Customizado em Rust/Go para Automação Interna de Equipes
- v4: Platform Engineering: Developer Portal com Backstage
🎓 Nível Profissional Simulado: Engenheiro DevOps / Platform Engineer Trainee. O dilema “na minha máquina funciona” acabou. Empresas modernas utilizam DevContainers e Makefiles, garantindo que um novo desenvolvedor consiga clonar o repositório e rodar o projeto em 30 segundos, exatamente com as mesmas versões de compilador e dependências de produção.
—`
Criar a infraestrutura de Ambiente Reprodutível de Desenvolvimento utilizando a especificação aberta DevContainers (.devcontainer/devcontainer.json), isolamento com Docker e automação padronizada de comandos operacionais (make build, make test, make lint, make run) através de um Makefile Canônico.
—`
“Levamos 3 dias para configurar o computador de um novo desenvolvedor contratado porque cada um usa um sistema operacional diferente (Windows, Mac, Ubuntu) com versões conflitantes do Java, Node e Python. Queremos que qualquer desenvolvedor abra o VS Code, clique em ‘Reopen in Container’ e tenha o ambiente 100% pronto com todas as extensões instaladas e possa rodar o projeto simplesmente digitando
make run.”
| ID | Tipo | Descrição | Origem no Briefing |
|---|---|---|---|
| RF01 | Funcional | Configurar .devcontainer/devcontainer.json com imagem base, portas e extensões recomendadas. |
“clique em Reopen in Container” |
| RF02 | Funcional | Implementar Makefile com targets canônicos: build, test, lint, clean e run. |
“rodar o projeto digitando make run” |
| RF03 | Funcional | Script de pós-criação (postCreateCommand) instalando ferramentas automaticamente. |
“ambiente 100% pronto” |
| RNF01 | Não-Funcional | Reprodutibilidade idêntica em Windows (WSL2), macOS (Apple Silicon) e Linux. | Portabilidade Total |
| RNF02 | Não-Funcional | Makefile determinístico com declaração explícita de .PHONY. |
Boas Práticas Make |
—`
| ID | User Story | Prioridade |
|---|---|---|
| US01 | Como novo membro do time, quero começar a programar no meu primeiro dia sem instalar 10 ferramentas locais. | Alta |
| US02 | Como time de CI/CD, quero rodar make test no GitHub Actions executando exatamente a mesma instrução dos devs. |
Alta |
—`
# Branch da funcionalidade
git checkout -b feature/US01-devcontainer-makefile
# Executar os targets do Makefile
make build
make test
—`
SHELL := /bin/bash
.PHONY: all build test clean run
all: build test
build:
@echo "==> Compilando a aplicacao..."
test:
@echo "==> Executando suíte de testes automatizados..."
clean:
@echo "==> Limpando artefatos temporarios..."
run:
@echo "==> Iniciando o servidor de desenvolvimento..."
—`
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd tools_01_devcontainer_makefile
# Executar comandos específicos da tecnologia:
python main.py # ou npm run dev / ./gradlew build
[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd proj_aplicacoes_full_stack/projetos/tools_01_devcontainer_makefile`
—`
# Validar se o Makefile executa todos os alvos sem erros
make all
—`
- Especificação DevContainer válida e pronta para o VS Code.
- Makefile executando targets com sucesso.
| ⬅️ Ver Todos os Projetos no Super-Hub | 🏠 Página Inicial do Portal |