devcontainers-nix
Ajuda seu agente a criar ambientes de desenvolvimento consistentes e reproduzíveis. Usa Dev Containers e Nix para garantir que todos na equipe usem as mesmas ferramentas.
O que ela faz
Esta ferramenta ajuda a criar ambientes de desenvolvimento consistentes e repetíveis para projetos de software. Ela garante que todos na equipe usem as mesmas ferramentas e configurações, evitando problemas como 'funciona na minha máquina'.
Quando usar
- ✓Ao iniciar um novo desenvolvedor em um projeto.
- ✓Para garantir que todos na equipe usem as mesmas versões de ferramentas.
- ✓Para resolver problemas onde o código funciona em um computador, mas não em outro.
Exemplo do que pedir para a IA
“Configure um ambiente de desenvolvimento para um projeto Node.js 20 e Python 3.12, com PostgreSQL e Redis.”
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
Você define as ferramentas e configurações necessárias em um arquivo. A ferramenta então cria um ambiente isolado com tudo pronto para usar, garantindo que seja o mesmo para todos.
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 sickn33/agentic-awesome-skills --skill devcontainers-nixOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/devcontainers-nix/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.
Contêineres de Desenvolvimento & Ambientes Nix
Ambientes de desenvolvimento reproduzíveis e portáteis que eliminam a deriva de ambiente.
Quando Usar Esta Habilidade
Use esta habilidade quando:
- Integrar novos desenvolvedores (do zero à produtividade em minutos)
- Padronizar cadeias de ferramentas em uma equipe
- Eliminar problemas de "funciona na minha máquina"
- Configurar ambientes de CI que correspondam ao desenvolvimento local
- Criar ambientes de desenvolvimento efêmeros e descartáveis
Contêineres de Desenvolvimento
Configuração Básica
// .devcontainer/devcontainer.json
{
"name": "My Project",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-22.04",
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "20" },
"ghcr.io/devcontainers/features/python:1": { "version": "3.12" },
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {}
},
"forwardPorts": [3000, 5432],
"postCreateCommand": "npm install",
"customizations": {
"vscode": {
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"ms-python.python"
],
"settings": {
"editor.formatOnSave": true
}
}
}
}
Contêiner de Desenvolvimento Docker Compose
// .devcontainer/devcontainer.json
{
"name": "Full Stack Dev",
"dockerComposeFile": "docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspace",
"forwardPorts": [3000, 5432, 6379],
"postCreateCommand": "npm install && npx prisma migrate dev"
}
# .devcontainer/docker-compose.yml
services:
app:
build:
context: ..
dockerfile: .devcontainer/Dockerfile
volumes:
- ..:/workspace:cached
command: sleep infinity
depends_on: [db, redis]
db:
image: postgres:16
environment:
POSTGRES_DB: dev
POSTGRES_USER: dev
POSTGRES_PASSWORD: dev
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
pgdata:
Dockerfile Personalizado
# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04
# System dependencies
RUN apt-get update && apt-get install -y \
build-essential \
curl \
git \
jq \
unzip \
&& rm -rf /var/lib/apt/lists/*
# Install project-specific tools
RUN curl -fsSL https://get.opentofu.org/install-opentofu.sh -o /tmp/install-opentofu.sh \
&& sh /tmp/install-opentofu.sh -s -- --install-method standalone \
&& rm /tmp/install-opentofu.sh
RUN curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
&& install kubectl /usr/local/bin/
# Non-root user setup
USER vscode
WORKDIR /workspace
Nix Flakes
Flake Básica
# flake.nix
{
description = "Project development environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
# Languages
nodejs_20
python312
go_1_22
rustc
cargo
# Tools
docker-compose
kubectl
kubernetes-helm
opentofu
awscli2
jq
yq-go
# Databases
postgresql_16
redis
];
shellHook = ''
echo "Dev environment loaded"
export PROJECT_ROOT=$(pwd)
export PATH="$PROJECT_ROOT/node_modules/.bin:$PATH"
'';
};
}
);
}
# Enter the dev shell
nix develop
# Or run a single command
nix develop --command bash -c "node --version && go version"
# Build and run
nix build
nix run
Fixar Dependências
# Lock flake inputs for reproducibility
nix flake lock
nix flake update # Update all inputs
# Update a specific input
nix flake lock --update-input nixpkgs
Devbox (Nix Simplificado)
Devbox envolve o Nix com uma interface mais amigável:
# Instalar Devbox
curl -fsSL https://get.jetify.com/devbox -o /tmp/install-devbox.sh && sh /tmp/install-devbox.sh && rm /tmp/install-devbox.sh
# Inicializar projeto
devbox init
# Adicionar pacotes
…
Perguntas frequentes
O que são 'Dev Containers'?
São ambientes de desenvolvimento encapsulados em contêineres (como caixas isoladas), que garantem que as ferramentas e dependências sejam as mesmas para todos os desenvolvedores.
O que é 'Nix Flakes'?
É uma forma avançada de gerenciar dependências e ambientes de desenvolvimento usando Nix, garantindo reprodutibilidade e consistência.
O que é 'Devbox'?
É uma ferramenta mais simples que usa a tecnologia Nix por baixo dos panos, facilitando a criação e o gerenciamento de ambientes de desenvolvimento sem a complexidade do Nix puro.
Detalhes
Descrição original do autor
Create reproducible development environments with Dev Containers, Nix flakes, and Devbox for consistent toolchains across teams.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2825
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
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