# Docker Configuration Validator

Проверяет Dockerfile и Docker Compose на безопасность, синтаксис и современные требования. Пригодится перед выкаткой в прод.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 336 установок · ★ 86
- Автор: rknall
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/rknall/claude-skills/tree/HEAD/docker-validation/SKILL.md
- Обновлён: 2025-10-20
- HTML: https://affpapa.org/nevibecode/skills/docker-configuration-validator

## Что делает

Скилл разбирает Dockerfile и файлы Compose по фазам: сначала оценка объёма — один файл или весь проект, потом проверка Dockerfile, затем Compose. Внутри есть готовые команды: поиск файлов через `find`, запуск Hadolint и DCLint, если они установлены, и `docker compose config --quiet` для проверки синтаксиса. Если линтеров нет, скилл переходит к ручным проверкам по списку.

Ручной разбор ищет теги `:latest`, отсутствие директивы `USER` с непривилегированным пользователем, секреты в образе, неверные пути в `WORKDIR`. Для многоступенчатых сборок считает `FROM`, именованные стадии и `COPY --from=`, чтобы понять, переносятся ли артефакты между стадиями. Находки раскладываются по уровням: критичные, высокие, средние, низкие.

В Compose отдельно проверяется устаревшее поле `version` — в Compose v2.27.0 и новее его быть не должно. Дальше идут сети, тома, переменные окружения, политики перезапуска и healthcheck. Hadolint и DCLint скилл не устанавливает сам, а советует поставить — без них останутся только ручные проверки, поэтому перед запуском стоит убедиться, что линтеры доступны в PATH.

## Требования
- Работает с: Docker

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add rknall/claude-skills --skill docker-configuration-validator -a claude-code
```
```bash
npx skills add rknall/claude-skills --skill docker-validation -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/docker-validation/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/docker-validation/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add rknall/claude-skills --skill docker-validation -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/docker-validation/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add rknall/claude-skills --skill docker-validation -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/docker-validation/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install rknall/claude-skills docker-validation
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/docker-validation/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add rknall/claude-skills --skill docker-validation -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/rknall/claude-skills --path docker-validation
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/docker-validation/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add rknall/claude-skills --skill docker-validation -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/rknall/claude-skills/tree/HEAD/docker-validation/SKILL.md

## Когда брать
- найти все Dockerfile в проекте и проверить каждый
- убрать тег `:latest` и закрепить версии базовых образов
- проверить, что контейнер не работает от root
- убедиться, что многоступенчатая сборка переносит артефакты
- вычистить устаревшее поле `version` из Compose

## Примеры запросов агенту
- проверь мой Dockerfile на безопасность и лучшие практики
- прогони валидацию docker-compose.yml и покажи проблемы по уровням
- посмотри многоступенчатую сборку: переносятся ли артефакты между стадиями

## Похожие
- [docker-patterns](https://affpapa.org/nevibecode/skills/docker-patterns.md) — скилл · 6400 установок
- [docker-compose-production](https://affpapa.org/nevibecode/skills/docker-compose-production.md) — скилл · 484 установки
- [docker-development](https://affpapa.org/nevibecode/skills/docker-development.md) — скилл · 702 установки
- [docker-compose-patterns](https://affpapa.org/nevibecode/skills/docker-compose-patterns.md) — скилл · 1400 установок
- [docker-project-foundations](https://affpapa.org/nevibecode/skills/docker-project-foundations.md) — скилл · 1000 установок
- [docker](https://affpapa.org/nevibecode/skills/bobmatnyc-docker.md) — скилл · 1000 установок

Из того же набора: [rknall/claude-skills](https://affpapa.org/nevibecode/by/rknall/claude-skills.md) — 4 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
