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

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/devcontainers-nix/SKILL.md

Mensagem pronta para colar

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

Ou 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.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.

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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2825
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas