Docker BuildKit secrets: передать ключ только на этапе build

Категория: docker · Язык: Dockerfile · Обновлено:

Не передавайте пароль через ARG или ENV: значения могут сохраниться в слоях и метаданных image. BuildKit secret mount открывает файл только для одной инструкции RUN. ????? ??????????? ?????????? ???????? ?????? ??????? ? ????????? ?????? ? ??????? ?????.

Рабочий пример

Dockerfile
# 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 во время запуска контейнера.