n1ro°
RU

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

Как передать NPM_TOKEN в Docker build без ARG и ENV

Секрет для приватного npm registry нужен во время `npm ci`, но не должен становиться частью итогового image metadata.

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

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

Передавайте токен как BuildKit secret и используйте `RUN --mount=type=secret`. Не сохраняйте NPM_TOKEN через `ARG` или `ENV`, если он нужен только на этапе сборки.

Порядок действий

  1. В Dockerfile используйте secret mount с `id=npm_token`.
  2. Прочитайте токен из `/run/secrets/npm_token` внутри одной build-команды.
  3. Передайте его через `docker build --secret id=npm_token,env=NPM_TOKEN .`.
  4. Проверьте, что временный `.npmrc` не попал в финальный слой.

Перед завершением проверьте

  • Токен не объявлен через финальный `ENV`.
  • Секрет не копируется из build context.

Важно

Не печатайте значение токена в build logs даже при использовании secret mount.

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

Не печатайте значение токена в build logs даже при использовании secret mount.

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

Фактическая часть сверена по первичным источникам (в т.ч. Build secrets). Пример и формулировки — редакция N1RO на 2026-09-20.