adding-docker — скилл для Claude Code: Dockerfile и compose
Скилл добавляет в проект Dockerfile, docker-compose и .dockerignore. Пригодится, когда надо упаковать приложение в контейнер без ручной возни с конфигами.
npx skills add spencerpauly/awesome-cursor-skills --skill adding-docker -a claude-codeЧто делает adding-docker
Скилл включается, когда вы просите докеризовать приложение или добавить поддержку Docker. Сначала агент смотрит на файлы проекта вроде package.json, requirements.txt, go.mod или Cargo.toml и по ним определяет язык и рантайм.
Дальше он пишет многоступенчатый Dockerfile: отдельные стадии для зависимостей, сборки и запуска. В примере для Node.js это node:20-alpine как база, npm ci --omit=dev на стадии зависимостей и npm start в финальном образе. Для вашего фреймворка агент подгоняет каталог сборки, команду запуска и базовый образ. Рядом появляется .dockerignore с node_modules, .next, .git и .env*.
Если у приложения есть база или Redis, скилл собирает docker-compose.yml с сервисом приложения и, например, postgres:16-alpine. Секреты он не копирует внутрь образа, а подключает через env_file. Для продакшена в заметках скилла есть строка про HEALTHCHECK — это повод проверить, что она попадёт в ваш Dockerfile, а не останется советом.
Какие задачи решает
- определить язык и рантайм по файлам проекта
- собрать многоступенчатый Dockerfile под конкретный фреймворк
- исключить node_modules и .env из контекста сборки
- поднять приложение вместе с базой через docker-compose
- добавить npm-скрипты для сборки и запуска контейнера
Примеры запросов агенту
- докеризуй это приложение
- добавь поддержку Docker в проект
- собери docker-compose с postgres для этого сервиса
Как установить adding-docker
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-docker -a claude-code2Вручную: положить файлы
~/.claude/skills/adding-docker/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/adding-docker/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-docker -a codex2Вручную: положить файлы
.agents/skills/adding-docker/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-docker -a cursor2Вручную: положить файлы
.cursor/skills/adding-docker/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills adding-docker2Вручную: положить файлы
.github/skills/adding-docker/SKILL.md1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-docker -a gemini-cli2Командой платформы
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/adding-dockerВручную: положить файлы
.devin/skills/adding-docker/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-docker -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о adding-docker
Как установить adding-docker в Claude?
Выполните npx skills add spencerpauly/awesome-cursor-skills --skill adding-docker -a claude-code. После этого файл скилла лежит в ~/.claude/skills/adding-docker/SKILL.md.
Что делает adding-docker?
Пишет production-ready Dockerfile с несколькими стадиями, .dockerignore и docker-compose.yml, если у приложения есть зависимости вроде базы данных или Redis.
Нужно ли что-то настраивать заранее?
Скилл сам определяет рантайм по манифестам проекта. Пароли базы в примере compose заданы прямо в файле, так что перед деплоем их стоит вынести в переменные окружения.
Исходный текст
SKILL.md · CC0-1.0
---
name: adding-docker
description: Dockerize an application with a production-ready Dockerfile, docker-compose setup, and .dockerignore.
---
# Add Docker
Use this skill when the user asks to dockerize, containerize, or add Docker support to an application.
## Steps
1. **Detect the runtime** — inspect `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`, etc. to determine the language and runtime.
2. **Create a multi-stage `Dockerfile`**
For Node.js (example):
```dockerfile
FROM node:20-alpine AS base
FROM base AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --omit=dev
FROM base AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=deps /app/node_modules ./node_modules
COPY --from=build /app/.next ./.next
COPY --from=build /app/public ./public
COPY --from=build /app/package.json ./
EXPOSE 3000
CMD ["npm", "start"]
```
Adapt for the detected framework — adjust the build output directory, entry command, and base image.
3. **Create `.dockerignore`**
```
node_modules
.next
.git
.env*
*.md
```
4. **Create `docker-compose.yml`** (if the app has dependencies like a database or Redis):
```yaml
services:
app:
build: .
ports:
- "3000:3000"
env_file: .env
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: app
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
```
5. **Add npm scripts** (optional)
```json
{
"docker:build": "docker build -t myapp .",
"docker:run": "docker compose up"
}
```
## Notes
- Use Alpine-based images to minimize image size.
- Never copy `.env` files into the image — use `env_file` or runtime injection.
- For monorepos, use a `.dockerignore` that excludes sibling packages not needed by the target app.
- Add a `HEALTHCHECK` instruction for production deployments.
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills