multi-stage-dockerfile
Faz seu agente criar arquivos Docker otimizados. Ele usa várias etapas para tornar as imagens menores e mais rápidas.
O que ela faz
Este agente de IA ajuda a criar arquivos de instruções para rodar programas em contêineres (Dockerfiles) de forma eficiente. Ele organiza o processo em etapas para que o resultado final seja menor, mais seguro e rápido.
Quando usar
- ✓Quando você quer criar um 'pacote' para rodar seu programa em qualquer lugar.
- ✓Para deixar o 'pacote' do seu programa o menor possível.
- ✓Para tornar o 'pacote' do seu programa mais seguro contra ataques.
Exemplo do que pedir para a IA
“Crie um Dockerfile otimizado para uma aplicação Node.js que usa React.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele usa uma técnica chamada 'multi-stage builds', onde uma etapa monta o programa e outra etapa, mais limpa, apenas o executa. Isso garante que apenas o essencial vá para o resultado final.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill multi-stage-dockerfileOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/multi-stage-dockerfile/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Seu objetivo é me ajudar a criar Dockerfiles multi-stage eficientes que sigam as melhores práticas, resultando em imagens de contêiner menores e mais seguras.
Estrutura Multi-Stage
- Use um estágio de builder (construtor) para compilação, instalação de dependências e outras operações em tempo de construção.
- Use um estágio de runtime (execução) separado que inclua apenas o necessário para executar o aplicativo.
- Copie apenas os artefatos necessários do estágio de builder para o estágio de runtime.
- Use nomes de estágio significativos com a palavra-chave
AS(por exemplo,FROM node:18 AS builder). - Coloque os estágios em ordem lógica: dependências → build → test → runtime.
Imagens Base
- Comece com imagens base oficiais e mínimas sempre que possível.
- Especifique tags de versão exatas para garantir builds reproduzíveis (por exemplo,
python:3.11-slime não apenaspython). - Considere imagens distroless para estágios de runtime, quando apropriado.
- Use imagens baseadas em Alpine para um tamanho menor, quando compatíveis com seu aplicativo.
- Garanta que a imagem de runtime tenha as dependências mínimas necessárias.
Otimização de Camadas
- Organize os comandos para maximizar o cache de camadas.
- Coloque comandos que mudam com frequência (como alterações de código) após comandos que mudam com menos frequência (como instalação de dependências).
- Use
.dockerignorepara evitar que arquivos desnecessários sejam incluídos no contexto de build. - Combine comandos RUN relacionados com
&¶ reduzir o número de camadas. - Considere usar COPY --chown para definir permissões em uma única etapa.
Práticas de Segurança
- Evite executar contêineres como root - use a instrução
USERpara especificar um usuário não root. - Remova ferramentas de build e pacotes desnecessários da imagem final.
- Escaneie a imagem final em busca de vulnerabilidades.
- Defina permissões de arquivo restritivas.
- Use builds multi-stage para evitar incluir segredos de build na imagem final.
Considerações de Desempenho
- Use argumentos de build para configurações que podem mudar entre ambientes.
- Aproveite o cache de build de forma eficiente, ordenando as camadas da menos para a mais frequentemente alterada.
- Considere a paralelização em etapas de build, quando possível.
- Defina variáveis de ambiente apropriadas, como NODE_ENV=production, para otimizar o comportamento em tempo de execução.
- Use healthchecks apropriados para o tipo de aplicativo com a instrução HEALTHCHECK.
Perguntas frequentes
O que é um Dockerfile?
É um arquivo de texto com instruções para o Docker criar um ambiente isolado (contêiner) onde seu programa pode rodar.
Por que 'multi-stage' é melhor?
Porque separa as ferramentas de 'montagem' do programa do ambiente de 'execução', resultando em um contêiner final muito menor e mais seguro.
O que são 'contêineres'?
São como caixas isoladas que contêm tudo que um programa precisa para rodar, facilitando a execução em diferentes computadores.
Detalhes
Descrição original do autor
Create optimized multi-stage Dockerfiles for any language or framework
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5244
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC