К основному содержанию
скилл CX Codex

docker-project-foundations — скилл для Claude Code: как установить

Скилл настраивает первичное окружение Docker для нового проекта. Он сразу создаёт базовую тройку файлов: .dockerignore, Dockerfile и compose.yaml.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add docker/skills --skill docker-project-foundations -a claude-code
Открыть на GitHub

Что делает docker-project-foundations

Скилл помогает упаковать проект в контейнеры с нуля. При инициализации он всегда генерирует три файла в корне проекта: .dockerignore, Dockerfile и compose.yaml. Привязка опубликованных портов приложения по умолчанию идёт строго на loopback-интерфейс, чтобы не открывать доступ внешней сети без явной необходимости.

Вместо локальной установки утилит через brew или apt ассистент поднимает базы данных и кэш прямо в сервисах Compose. Для баз Postgres, MySQL или Redis берутся официальные образы с Docker Hub, а настройки передаются через переменные окружения. Секреты сборки вроде токенов .npmrc монтируются через BuildKit, поэтому приватные ключи не попадают в слои итогового образа.

Для работы нужны Docker 20.10+ и Docker Compose v2. Скрипт scripts/verify-setup.sh проверяет наличие файлов и валидность compose.yaml. Если в проекте уже есть рабочая инфраструктура и требуется лишь мелкая правка Dockerfile, подключать этот скилл бессмысленно: он рассчитан строго на первоначальный старт.

Какие задачи решает

  • создать стартовую конфигурацию Docker для нового проекта
  • добавить базу данных или кэш без установки в хостовую систему
  • настроить безопасную передачу токена .npmrc через BuildKit
  • проверить структуру файлов и валидность compose.yaml скриптом

Примеры запросов агенту

  • Добавь в проект Dockerfile и compose.yaml для локальной разработки
  • Подключи Postgres и Redis через Docker вместо установки на хост
  • Настрой сборку контейнера с приватным реестром npm через секреты BuildKit

Как установить docker-project-foundations

1Через Skills CLI (Vercel)

npx skills add docker/skills --skill docker-project-foundations -a claude-code

2Вручную: положить файлы

~/.claude/skills/docker-project-foundations/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/docker-project-foundations/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о docker-project-foundations

Как установить docker-project-foundations в Claude Code?

Выполните команду npx skills add docker/skills --skill docker-project-foundations -a claude-code. Файл скилла разместится в ~/.claude/skills/docker-project-foundations/SKILL.md.

Какие файлы создаёт скилл при контейнеризации?

Скилл генерирует в корне репозитория связку из трёх файлов: .dockerignore для отсечения лишнего контекста сборки, Dockerfile с многоэтапной сборкой и compose.yaml со стеком сервисов.

Какие требования нужны для работы docker-project-foundations?

Для работы требуются установленные Docker версии 20.10 или выше и Docker Compose v2.

Исходный текст

SKILL.md · Apache-2.0
---
name: docker-project-foundations
description: Use this skill when setting up, initializing, or Dockerizing a project, even if the user doesn't explicitly mention Docker but describes a need for containerized local development, adding a database or cache dependency, or running services without host-level installs. Covers Dockerfile, compose.yaml, and .dockerignore creation with Docker best practices.
license: Apache-2.0
compatibility: Requires Docker 20.10+ and Docker Compose v2.
---

# Docker Project Foundations

## Overview

This skill guides you in Dockerizing a project from scratch. It focuses on creating the initial Docker file set, choosing a sane layout, and preferring containerized dependencies over host-level installs.

## When to use this skill

Activate this skill when:

- A user asks you to set up, initialize, or Dockerize a project
- A project needs an initial `Dockerfile`, `compose.yaml`, or `.dockerignore` and does not have one
- A user wants to add a service dependency (database, cache, message queue) to a project
- A user asks how to run or develop a project locally and Docker is available

## Do not use this skill when

Do not use this skill when:

- The user explicitly wants to avoid Docker
- The project already has a mature Docker setup and only needs minor edits
- The main task is optimizing an existing `Dockerfile`
- The main task is editing or debugging an existing Compose stack

## Core guidance

### Always create these three files

When Dockerizing a project, always produce all three:

1. **`.dockerignore`** — Create this first so the initial build context is small and safe. See `assets/dockerignore-example` for a reference.
2. **`Dockerfile`** — Create a working starter image definition that the project can build and run with. See `assets/Dockerfile.simple`.
3. **`compose.yaml`** — Create a local development stack that includes the application service and any required dependencies. See `assets/compose-dev.yaml`.

### npm registry credentials

- Exclude `.npmrc` at every depth with `**/.npmrc` in `.dockerignore`; otherwise a broad source copy can persist credentials in image layers.
- The Node.js starter mounts `npmrc` as a BuildKit secret for both `npm ci` steps. Public-package builds need no secret. For private registries, pass the config explicitly:
  ```bash
  DOCKER_BUILDKIT=1 docker build --secret id=npmrc,src="$HOME/.npmrc" .
  ```
  Use the actual config path if the project keeps it elsewhere. Never copy the credential file or pass its values through `ARG` or `ENV`. Dependency scripts run during installation can access the mounted secret; use trusted dependencies and a least-privilege registry token.
- For private-registry builds through Compose, add this optional override as `compose.npm.yaml` alongside the starter's `compose.yaml`:
  ```yaml
  services:
    app:
      build:
        secrets:
          - npmrc
  secrets:
    npmrc:
      file: ${NPMRC_PATH:?Set NPMRC_PATH to your npm config file}
  ```
  Build with `NPMRC_PATH="$HOME/.npmrc" docker compose -f compose.yaml -f compose.npm.yaml build`. This grants build-time access only, not a runtime secret. Public-package builds should omit the override so no credential file is required.

### Prefer Dockerized dependencies over host installs

When a project needs a database (Postgres, MySQL, MongoDB), cache (Redis, Memcached), queue (RabbitMQ, Kafka), or any other infrastructure service:

- **Always** define it as a service in `compose.yaml` instead of telling the user to install it on the host.
- **Never** suggest `brew install postgres`, `apt install redis`, or similar host-level installs for development dependencies.
- Use official Docker images from Docker Hub for these services.
- Configure services with environment variables, not config files baked into images.

### Bootstrap checklist

- Name the file `compose.yaml` rather than legacy Compose filenames.
- Put all three files at the project root unless there is a clear multi-service layout that justifies a `docker/` subdirectory.
- Ensure the initial setup can build and start locally with one command path.
- Bind published application ports to loopback by default. Widen the host address only when another device must reach the development service.
- Keep unauthenticated datastores on the Compose network instead of publishing their ports. If local host tools require database access, publish only to loopback.
- If a development-only credential fallback enables one-command startup, label it clearly and document a `.env` override.
- Use Compose services for local databases, caches, and queues instead of host installs.
- Keep the first scaffold simple; defer detailed image optimization and advanced Compose tuning to the owning skills.

### Development vs production

- Development: Use bind mounts for live reload, publish application ports on loopback by default, and enable verbose logging. Keep unauthenticated datastores on the Compose network; publish a datastore port only on loopback when local host tools require it.
- Production: Use multi-stage builds, copy only built artifacts, do not mount source code, minimize image layers, set appropriate resource limits.
- Keep a single `Dockerfile` that supports both via build stages and build arguments when possible.

### File placement

- Place `Dockerfile` at the project root (or in a `docker/` subdirectory if the project has multiple services).
- Place `compose.yaml` at the project root.
- Place `.dockerignore` at the project root, next to the `Dockerfile`.

## Related skills

- For Dockerfile optimization, cache strategy, non-root execution, and image hardening, use `docker-build-strategies`.
- For service dependencies, health checks, overrides, volumes, networks, and Compose debugging, use `docker-compose-patterns`.
- For destructive Docker CLI commands (`docker system prune`, `docker rm -f`, image/network/builder pruning) and a cross-product index of destructive-command guardrails, use `docker-destructive-guardrails`.

## References

- `references/project-structure.md` — Detailed guidance on Docker project file organization, naming conventions, and multi-service layouts.

## Assets

- `assets/dockerignore-example` — A comprehensive `.dockerignore` for a typical project.
- `assets/compose-dev.yaml` — A development-oriented Compose file with Dockerized dependencies.
- `assets/Dockerfile.simple` — A basic multi-stage Dockerfile following best practices.

## Scripts

- **`scripts/verify-setup.sh`** — Checks that required files exist in the current directory and validates its `compose.yaml`. Run it from the project root, with the script path resolved under this skill's directory:
  ```bash
  bash "<skill-dir>/scripts/verify-setup.sh" [--help]
  ```
  Replace `<skill-dir>` with the absolute path of the folder that contains this `SKILL.md`; the `scripts/` path is relative to that folder, not to the project. Do not change into the skill directory first: the script checks the current directory. If the skill directory cannot be resolved, check that `.dockerignore`, `Dockerfile`, and `compose.yaml` exist in the project root, then run `docker compose config --quiet`. Exit status is `0` when verification succeeds or help is requested, `1` when required files are missing or the Compose configuration is invalid, and `2` for invalid arguments.

## Checks

- `checks/verification.md` — Detailed verification checklist for manual review.

© docker · Apache-2.0 · docker/skills

Похожие скиллы

Всё по теме «DevOps и инфраструктура» →
docker bobmatnyc Скилл по Docker: помогает агенту писать Dockerfile, собирать образы и поднимать сервисы через Compose. Пригодится, когда проект надо упаковать одинаково для разработки и продакшена. CX Codex +1 1 000установок docker-expert PCL Team Скилл для работы с Docker: подсказывает, как собирать образы, чинить Dockerfile и настраивать Compose. Пригодится, когда контейнер раздулся или падает на старте. CX Codex +1 365установок bun-docker secondsky Скилл подсказывает, как собрать Dockerfile и docker-compose для приложения на Bun: официальные образы oven/bun, многоэтапные сборки, hot reload. CX Codex +1 408установок docker-development Alireza Rezvani Скилл анализирует Dockerfile, Docker Compose и контейнеры: ищет проблемы с размером, сборкой и безопасностью. Подойдёт для настройки контейнеризации. 702установок docker-best-practices JosiahSiegel Скилл по Docker: подсказывает, как писать Dockerfile, выбирать базовый образ и настраивать контейнеры для продакшена. CX Codex +1 938установок docker-management devops-skills Набор инструкций для сборки многоэтапных Dockerfile, настройки сетей и отладки контейнеров в Docker. Помогает изолировать окружение и находить ошибки в упавших процессах. CX Codex +1 508установок

Из того же набора9

docker-compose-patterns Набор правил для сборки, отладки и связывания сервисов в compose.yaml. Помогает настроить проверки готовности, тома и оверрайды под локальную разработку. CX Codex +1 1 400установок docker-build-strategies Скилл учит ИИ-ассистента писать, проверять и оптимизировать Dockerfile по практикам BuildKit. Пригодится при медленной сборке или раздутом итоговом образе. CX Codex +1 1 200установок docker-destructive-guardrails Скилл заставляет агента назвать, что именно будет удалено, и получить подтверждение до запуска разрушительных команд Docker. CX Codex +1 1 000установок docker-agent-run Скилл ведёт агента через docker agent run: выбор режима безопасности, изоляция в песочнице, алиасы и разбор сбоев запуска. CX Codex +1 746установок docker-agent-config Помогает составить и отредактировать конфигурацию agent.yaml для Docker Agent. Пригодится при настройке моделей, наборов инструментов и команд из нескольких агентов. CX Codex +1 746установок docker-sandboxes-env Помогает создавать и валидировать декларативные файлы sbxenv.yaml для Docker Sandboxes. Пригодится для повторяемой настройки песочниц и запуска скриптов окружения. CX Codex +1 725установок docker-sandboxes-network-credentials Скилл для настройки сетевых правил и учётных данных песочниц Docker Sandboxes: что агенту можно в сеть и какими токенами он ходит наружу. CX Codex +1 724установок docker-sandboxes-kits Скилл помогает писать, проверять и упаковывать манифесты spec.yaml для Docker Sandboxes по спецификации kit-spec v2. Пригодится при сборке готовых агентов или расширений-миксинов. CX Codex +1 723установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой