Agent Skill
2/7/2026dockerfile-generator
Skill para gerar Dockerfiles, entrypoints, Makefiles e .dockerignore automaticamente seguindo melhores práticas.
L
lucasbiason
1GitHub Stars
1Views
npx skills add LucasBiason/cursor-multiagent-system
SKILL.md
| Name | dockerfile-generator |
| Description | Skill para gerar Dockerfiles, entrypoints, Makefiles e .dockerignore automaticamente seguindo melhores práticas. |
name: dockerfile-generator description: Skill para gerar Dockerfiles, entrypoints, Makefiles e .dockerignore automaticamente seguindo melhores práticas. triggers: [generate dockerfile, create dockerfile, docker template, entrypoint generator, makefile generator]
Dockerfile Generator Skill
Geração automática de Dockerfiles multi-stage, entrypoints, Makefiles e .dockerignore seguindo as melhores práticas do cursor-multiagent-system.
Quando Usar
Aplicar esta skill quando:
- Iniciando um novo projeto que precisa de Docker
- Migrando projeto existente para Docker
- Padronizando Dockerfiles em múltiplos projetos
- Gerando templates seguindo as melhores práticas do sistema
Opções de Geração
1. Usar Templates Existentes (Recomendado)
Templates disponíveis em core/templates/:
- Django:
core/templates/django/Dockerfile - FastAPI:
core/templates/fastapi-project/basic/Dockerfileewith-framework/Dockerfile - Node.js:
core/templates/entrypoint/nodejs-entrypoint.sh(entrypoint) - React:
core/templates/entrypoint/react-entrypoint.sh(entrypoint)
Uso:
# Copiar template Django
cp core/templates/django/Dockerfile ./Dockerfile
cp core/templates/django/.dockerignore ./.dockerignore
cp core/templates/django/Makefile ./Makefile
cp core/templates/django/entrypoint.sh ./entrypoint.sh
2. Usar Skill Generator Service (Futuro)
Quando implementado, usar API HTTP para geração dinâmica:
# Exemplo de chamada à API
curl -X POST http://localhost:4000/generate \
-H "Content-Type: application/json" \
-d '{
"framework": "django",
"package_manager": "poetry",
"python_version": "3.11",
"project_name": "myapp",
"tests": true,
"artifacts": ["dockerfile", "entrypoint", "makefile", "dockerignore"]
}'
Parâmetros de Geração
Framework
django- Django com gunicornfastapi- FastAPI com uvicorn/gunicornnode- Node.js/Expressreact- React (Vite) com nginx
Package Manager (Python)
poetry- Poetry (pyproject.toml)pip- pip (requirements.txt)
Versões
python_version:3.11,3.12(padrão:3.11)node_version:18,20(padrão:18)
Features
tests:true/false- Incluir stage de testeshealthcheck:true/false- Incluir healthchecknon_root:true/false- Usar usuário não-root (padrão:true)
Estrutura Gerada
Dockerfile Multi-Stage
# Stage 1: Builder
FROM python:3.11-slim AS builder
# Instala dependências, roda testes, coleta static files
# Stage 2: Test (opcional)
FROM builder AS test
# Roda testes isoladamente
# Stage 3: Runtime
FROM python:3.11-slim AS runtime
# Imagem final minimalista
Entrypoint.sh
set -euo pipefail- Funções:
wait_for_db(),check_dependencies() - Comandos:
dev,prod,test,migrate,shell,health exec "$@"para forward de sinais
Makefile
- Targets:
build,build-test,test,run,run-dev,scan,clean - Help automático:
make help - Variáveis configuráveis:
IMAGE_NAME,TAG,REGISTRY
.dockerignore
- Exclui:
__pycache__,venv,.git,.env,tests/,*.log - Otimiza contexto de build
Regras Obrigatórias
Dockerfile
-
Multi-stage build obrigatório:
- Stage
builder: Dependências e build - Stage
runtime: Imagem final minimalista
- Stage
-
Otimização de cache:
- Copiar
requirements.txt/pyproject.tomlprimeiro - Instalar dependências antes de copiar código
- Copiar
-
Segurança:
- Usuário não-root (
appuser) - Sem ferramentas de build no runtime
- Sem segredos hardcoded
- Usuário não-root (
-
Healthcheck:
- Configurar HEALTHCHECK para
/health/endpoint
- Configurar HEALTHCHECK para
-
Labels OCI:
org.opencontainers.image.titleorg.opencontainers.image.descriptionorg.opencontainers.image.vendor
Entrypoint.sh
-
Sempre usar:
set -euo pipefailexec "$@"no final
-
Funções obrigatórias:
wait_for_db()- Aguardar banco (opcional)check_dependencies()- Verificar dependências
-
Comandos padrão:
dev- Desenvolvimentoprod- Produçãotest- Testesmigrate- Migrationshealth- Health check
Makefile
-
Targets obrigatórios:
build- Build da imagemtest- Rodar testesrun- Executar containerhelp- Mostrar ajuda
-
Documentação:
- Cada target com comentário
##
- Cada target com comentário
-
Variáveis:
IMAGE_NAME- Nome da imagemTAG- Tag da imagem (padrão:latest)
Exemplos de Uso
Gerar Dockerfile Django
# Opção 1: Copiar template
cp core/templates/django/Dockerfile ./Dockerfile
# Opção 2: Gerar via API (quando disponível)
curl -X POST http://localhost:4000/generate \
-H "Content-Type: application/json" \
-d '{
"framework": "django",
"package_manager": "poetry",
"python_version": "3.11",
"project_name": "myapp",
"tests": true
}'
Gerar Entrypoint FastAPI
# Copiar template
cp core/templates/entrypoint/fastapi-entrypoint.sh ./entrypoint.sh
# Ajustar para projeto específico
# - Ajustar WSGI_MODULE se necessário
# - Ajustar comandos de migration (alembic)
Gerar Makefile
# Copiar template Django
cp core/templates/django/Makefile ./Makefile
# Ajustar variáveis
# IMAGE_NAME=myapp
# PYTHON_VERSION=3.11
Integração com Claude Code / Cursor
Prompt para Claude Code
Gere Dockerfile multi-stage, entrypoint.sh e Makefile para um projeto Django usando Poetry.
Parâmetros:
- project_name: portal
- python_version: 3.11
- tests: true
- package_manager: poetry
Use os templates de core/templates/django/ e ajuste conforme necessário.
Prompt para Cursor
Crie um Dockerfile multi-stage para este projeto Django seguindo as melhores práticas:
- Usar template de core/templates/django/Dockerfile
- Ajustar para usar Poetry (pyproject.toml)
- Incluir stage de testes
- Configurar usuário não-root
- Adicionar healthcheck
Checklist de Validação
Após gerar os arquivos, validar:
- Dockerfile usa multi-stage build
- Dependências instaladas antes de copiar código
- Usuário não-root configurado
- Healthcheck presente
- Entrypoint.sh com
set -euo pipefaileexec "$@" - Makefile com targets essenciais
- .dockerignore exclui arquivos desnecessários
- Nenhum segredo hardcoded
- Labels OCI configurados
- Documentação atualizada
Referências
- Templates Django:
core/templates/django/ - Templates FastAPI:
core/templates/fastapi-project/ - Templates Entrypoint:
core/templates/entrypoint/ - Docker Skill:
skills/infrastructure/docker-entrypoint/SKILL.md - Docker Compose Skill:
skills/infrastructure/docker-compose/SKILL.md - Django Guide:
core/templates/django/DOCKERFILE_GUIDE.md
Roadmap (Futuro)
Skill Generator Service
Micro-serviço HTTP para geração dinâmica:
// Exemplo de implementação futura
POST /generate
{
"framework": "django",
"package_manager": "poetry",
"python_version": "3.11",
"project_name": "myapp",
"tests": true,
"artifacts": ["dockerfile", "entrypoint", "makefile", "dockerignore"]
}
Benefícios:
- Geração dinâmica baseada em parâmetros
- Integração com Claude Code / Cursor via API
- Templates atualizados centralmente
- Validação automática de boas práticas
Última Atualização: 2026-01-21
Skills Info
Original Name:dockerfile-generatorAuthor:lucasbiason
Download