Docker BuildKit secrets: передать ключ только на этапе build
Не передавайте пароль через ARG или ENV: значения могут сохраниться в слоях и метаданных image. BuildKit secret mount открывает файл только для одной инструкции RUN. ????? ??????????? ?????????? ???????? ?????? ??????? ? ????????? ?????? ? ??????? ?????.
Рабочий пример
# syntax=docker/dockerfile:1
FROM alpine:3.20
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc npm ci
# Сборка:
# docker build --secret id=npmrc,src=/secure/npmrc -t app:dev .Secret mount доступен только во время RUN и автоматически не попадает в итоговый слой. Включите BuildKit, задайте минимальные права токену и не копируйте secret в build output.
Частый вопрос
Можно ли задать пароль registry через ENV?
ENV записывается в конфигурацию образа. Используйте BuildKit secret mount для build или защищённый secret store во время запуска контейнера.