n1ro°
RU

Текст и данные · Инструкция

Docker Compose: как задать project name через -p, COMPOSE_PROJECT_NAME или name

По умолчанию Compose выводит project name из каталога проекта. Это удобно локально, но одинаковые или меняющиеся каталог

Редакция N1RO · Проверено

Короткий ответ

Project name можно задать флагом `-p`, переменной `COMPOSE_PROJECT_NAME` или верхнеуровневым `name:` в Compose-файле. Самый высокий приоритет у `-p`; явное имя помогает изолировать одинаковые Compose-стеки на одном хосте или в CI.

Что делать

  1. Определите нужное имя: Используйте короткое стабильное имя из строчных букв, цифр, дефисов или подчёркиваний; начало — буква или цифра.
  2. Разовый запуск: Передайте `docker compose -p myapp up -d`.
  3. Для окружения CI: Задайте `COMPOSE_PROJECT_NAME=myapp-${BUILD_ID}` перед командой Compose.
  4. Для самого Compose-файла: При необходимости добавьте верхнеуровневое `name: myapp`.
  5. Учтите приоритет: Помните полный порядок: `-p` → `COMPOSE_PROJECT_NAME` → `name:` → basename project directory → basename current directory, если Compose file не задан.
  6. Проверьте ресурсы: Сравните `docker compose -p myapp ps` и созданные сети/контейнеры, чтобы убедиться, что стек изолирован ожидаемым project name.

Важно

Смена project name создаёт другой набор Compose-ресурсов; старый стек с прежним именем автоматически не удаляется.

Что учитывать

Смена project name создаёт другой набор Compose-ресурсов; старый стек с прежним именем автоматически не удаляется.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Specify a project name). Пример и формулировки — редакция N1RO на 2026-09-17.