Programação & Web
Qualquer IA
Pipeline Completo GitHub Actions + Docker Multi-Stage
CI/CD para build multi-stage Docker otimizado, cache de layers, testes e deploy seguro via SSH.
0cópias
0joinhas
0favoritos
O prompt
Crie um conjunto de arquivos de infraestrutura e CI/CD para uma aplicação web moderna.
Parâmetros:
- Nome da Aplicação: {{nome_app}}
- Imagem Base: {{imagem_base}}
- Porta Exposta: {{porta_app}}
Estrutura Necessária:
1. Dockerfile com Multi-Stage Build:
- Estágio de dependências e build.
- Estágio final enxuto baseado na imagem {{imagem_base}} (Alpine/Distroless), rodando com usuário sem privilégios (non-root).
- Healthcheck nativo configurado na porta {{porta_app}}.
2. Arquivo .dockerignore otimizado para evitar inclusão de node_modules, logs e arquivos de ambiente.
3. Workflow GitHub Actions (.github/workflows/deploy.yml):
- Trigger em push na branch main.
- Job de lint e testes.
- Job de build com cache do Docker Buildx (GitHub Cache Backend).
- Push da imagem {{nome_app}} para container registry ou deploy direto em servidor Linux via SSH com Docker Compose.
Como usar
- Substitua {{nome_app}}, {{imagem_base}} (ex.: 'node:22-alpine') e {{porta_app}} (ex.: 3000).
- Cole em qualquer IA; salve os arquivos retornados nos caminhos indicados (Dockerfile, .dockerignore, .github/workflows/deploy.yml).
- Faça push na main — o pipeline roda lint/testes, build com cache Buildx e deploy via SSH + Docker Compose.
- Na primeira execução: configure os secrets de SSH nas configurações do repositório (SSH_HOST, SSH_USER, SSH_KEY).
Exemplo de saída
Três arquivos: Dockerfile multi-stage (build → imagem final alpine rodando como usuário non-root com healthcheck na porta 3000), .dockerignore excluindo node_modules/logs/.env e deploy.yml com job de lint+testes e job de build com cache Buildx empurrando a imagem ou fazendo deploy via SSH.