Aplicação Flask criada para exemplificar um pipeline CI/CD focado na validação de conteúdo HTML e execução local com Docker.
- ✅ Pipeline CI/CD: Validação automatizada do conteúdo HTML via GitHub Actions
- 🐳 Docker Local: Execução da aplicação em containers para desenvolvimento
- 📚 Educacional: Demonstrar práticas DevOps e containerização
# Construir e executar a aplicação
docker-compose up --build
# Executar em background (modo daemon)
docker-compose up -d --build
# Parar a aplicação
docker-compose down
# Ver logs em tempo real
docker-compose logs -f# Construir a imagem
docker build -t devopslab-helloworld .
# Executar o container (foreground)
docker run -p 5000:5000 devopslab-helloworld
# Executar em background
docker run -d -p 5000:5000 --name hello-world devopslab-helloworld
# Parar a aplicação
docker stop hello-world
# Remover o container
docker rm hello-world
# Ver logs
docker logs hello-world# Usar o script de conveniência
chmod +x docker-helper.sh
# Comandos disponíveis:
./docker-helper.sh build # Construir imagem
./docker-helper.sh run # Executar (foreground)
./docker-helper.sh run-bg # Executar (background)
./docker-helper.sh stop # Parar aplicação
./docker-helper.sh compose-up # Docker compose (foreground)
./docker-helper.sh compose-up-bg # Docker compose (background)
./docker-helper.sh compose-down # Parar docker compose
./docker-helper.sh logs # Ver logs
./docker-helper.sh clean # Limpar containers/imagensApós executar qualquer uma das opções acima:
- URL: http://localhost:5000
- Porta: 5000
O arquivo .github/workflows/pipeline.yml executa apenas:
- Validação de conteúdo: Verifica elementos essenciais do HTML
- Verificação de arquivos estáticos: Confirma presença de CSS e imagens
- Validação sintática: Analisa a estrutura HTML básica
- Execução condicional: Apenas em push para branch main
- Commit automático: Registra validações bem-sucedidas
O script validate-html.sh verifica:
- ✅ DOCTYPE HTML5
- ✅ Atributo lang="pt-BR"
- ✅ Meta charset UTF-8
- ✅ Meta viewport
- ✅ Título da página
- ✅ Estrutura html/head/body
- ✅ Link para CSS principal
- ✅ Presença de "Trilha DevOps"
- ✅ Presença de "Trilha Containers"
- ✅ Links para cursos da 4Linux
- ✅ Arquivo
static/css/main.css - ✅ Diretório
static/imgs/
# Executar apenas as validações HTML
./validate-html.sh📦 DevOpsLab-HelloWorld
├── 📁 .github/workflows/
│ └── 📄 pipeline.yml # Pipeline CI/CD (só validação HTML)
├── 📁 static/
│ ├── 📁 css/
│ │ └── 📄 main.css # Estilos principais
│ └── 📁 imgs/ # Imagens
├── 📁 templates/
│ └── 📄 index.html # Página principal (validada pelo pipeline)
├── 📄 app.py # Aplicação Flask
├── 📄 validate-html.sh # Script de validação HTML
├── 📄 docker-helper.sh # Utilitário Docker (uso local)
├── 📄 Dockerfile # Containerização (uso local)
├── 📄 docker-compose.yml # Orquestração (uso local)
├── 📄 requirements.txt # Dependências Python
└── 📄 README.md # Esta documentação
-
Modificar código:
# Editar templates/index.html, app.py, etc. -
Testar localmente:
# Opção 1: Docker Compose docker-compose up --build # Opção 2: Docker direto docker build -t devopslab-helloworld . docker run -p 5000:5000 devopslab-helloworld # Opção 3: Script helper ./docker-helper.sh compose-up
-
Validar HTML (opcional):
./validate-html.sh
-
Acessar: http://localhost:5000
-
Commit & Push:
git add . git commit -m "Atualização do conteúdo HTML" git push origin main
-
Pipeline executa automaticamente:
- Valida arquivo
templates/index.html - Verifica arquivos estáticos
- Faz commit automático se tudo passar
- Valida arquivo
-
Monitorar: Badge no README atualiza automaticamente
# Docker - Gerenciamento básico
docker ps # Ver containers rodando
docker images # Ver imagens locais
docker system prune -f # Limpar recursos não utilizados
# Docker Compose - Gerenciamento
docker-compose ps # Ver serviços rodando
docker-compose logs web # Ver logs do serviço web
docker-compose exec web /bin/bash # Acessar container
# Git - Acompanhar pipeline
git log --oneline # Ver commits recentes
git status # Ver status do repositório- Triggers: Push em
main/develop, Pull Request paramain - Função: Apenas validação HTML + commit automático
- Não executa: Docker, deploy, testes de aplicação
- Porta: 5000
- Volumes: Código sincronizado para desenvolvimento
- Rebuild: Automático com
--build
- Desenvolvimento Local: Docker facilita ambiente consistente
- Validação Automática: Pipeline garante qualidade do HTML
- Simplicidade: Foco específico em validação de conteúdo
- Feedback Visual: Badge mostra status do pipeline
- Flexibilidade: Desenvolvimento local independente do pipeline
Para maiores informações sobre DevOps e containerização:
Desenvolvido para fins educacionais - Trilha DevOps 4Linux 🚀