Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)40 mil · #5244

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

https://github.com/github/awesome-copilot/blob/main/skills/multi-stage-dockerfile/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/multi-stage-dockerfile/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-dockerfile

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/multi-stage-dockerfile/SKILL.md -o SKILL.md
Conteú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-slim e não apenas python).
  • 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 .dockerignore para evitar que arquivos desnecessários sejam incluídos no contexto de build.
  • Combine comandos RUN relacionados com && para 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 USER para 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas