TGViewer
Node.js Recipes Node.js Recipes @node_recipes · 3.1K subscribers
Post #109 1.35K
Как понять запущен ли Node.js внутри Docker?
#nodejs_api #docker

Docker контейнеры созданы, чтобы запускать только один процесс. У этого процесса id всегда 1. Рекомендуемый запуск #nodejs:
ENTRYPOINT ["node", "src/index.js"]
Тогда на уровне кода легко проверить
const isDocker = process.pid === 1

Кроме айди текущего процесса (process.pid), у нас есть айди родительского процесса – process.ppid. Для стартового процесса он равен 0.

Если вы запускаете через npm run ..., то npm будет иметь pid=1 и являться родительским процессом для Node.js. Так делать не следует.

Возможные варианты использования:

1️⃣ При локальной разработке использовать человекочитаемые логи, а внутри Docker в формате json:
const pino = require('pino');
const logger = pino({ prettyPrint: process.pid !== 1 });
Требует pino-pretty.

2️⃣ Переходить в debug режим по нажатию ctrl+T.
if (process.pid !== 1) {
process.on('SIGINFO', () => {
require('inspector').open();
});
}
Это автоматизация для дебага запущенного процесса. Без нее сначала узнаем айди процесса через ctrl+T, а потом делаем kill -SIGUSR1 <pid>
More from @node_recipes
  1. Jan 5, 2026По всьому світу проходять Cursor Meetups, де локальні спільноти діляться досвідом використ…
  2. Jan 5, 2026Думки на вихідних: Full Stack Learning Подивився останнє відео Сергія Немчинського про фул…
  3. Dec 31, 2025Залишаються лічені години 2025-го. І будьмо чесними: сам перехід на 2026-й нічого автомати…
  4. Dec 25, 2025Моє відкриття 2025 року, як доповідача, це Napkin.ai. На малюнку приклад того, як Napkin г…
  5. Dec 23, 2025А ось й ChatGPT додав 2025 review feature. Авжеж в мене half coded Nest.js app, як ще :)
  6. Dec 23, 2025Моє технічне відкриття 2025 року — centrifugal.dev У 2025-му я багато працював із реальним…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →