TGViewer
melikhov.dev melikhov.dev @melikhov_dev · 4.74K subscribers
Post #259 7.8K
Про билд-секреты в докере

Давно хотел написать. Вот есть задача закинуть секреты в docker build. Это не рантайм-секреты, это секреты необходимые только на этапе билда. В итоговом образе они светиться не должны (как и любые секреты).

Как тут правильно поступить? --build-arg (ARG в Dockerfile) не подходит для передачи секретов, запомните это. Достаточно docker history --no-trunc <img> и вот они, секреты, как на ладони. Значит, какие у нас варианты:

1 Вытягивать секреты из секретницы в самом билде — не всегда возможно;
2 Multi-stage билд — может существенно замедлить сборку;
3 Закинуть секреты через встроенный механизм докера!

Как оно работает. Создаём файл с секретами. Например, .secrets. Обычный текстовый файл, куда мы закинем секреты строчка за строчкой.


cat <<EOT > .secrets
SUPER_SECRET_1=$SUPER_SECRET_1
SUPER_SECRET_2=$SUPER_SECRET_2
EOT


Включаем BuildKit через env DOCKER_BUILDKIT=1. Если у ваc Docker >= 23.0 то BuildKit включен по умолчанию.

Скармливаем файл с секретами:


DOCKER_BUILDKIT=1 docker build --secret id=secrets,src=.secrets .


В Dockerfile монтируем секреты в RUN и загоняем их в env


RUN --mount=type=secret,required=true,id=secret,target=./.secrets \
export $(cat .secrets) > /dev/null && \
npm run build


Можно не только через файл, но и через ENV но это мне кажется наименее удобным.
  • 🔥 82
  • 👍 19
More from @melikhov_dev
  1. Sep 13, 2026Какой он — личный харнес? Вот мы и пришли в точку, когда уже бизнес не устраивает медленна…
  2. Aug 30, 2026Разобрал своего питонячего новостного бота и собрал нового, уже на Гермесе. Ну как собрал…
  3. Aug 24, 2026Вы могли наверное заметить что как-то мало меня стало в последнее время. Не видно на конфе…
  4. Aug 6, 2026Как же хорошо перечитывается сейчас «Трилогия Муравейника» Гибсона (она же Sprawl trilogy)…
  5. Aug 1, 2026github показал очередную полезную штуку — Stacked pull requests. Даже жалко, что как обычн…
  6. Jul 21, 2026Жил счастливо (почти) с revdiff, но тут мне показали herdr.dev. Это такой tmux на стероида…
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 →