Секреты, окружение и конфигурация
Один и тот же image должен запускаться в dev, staging и production — но пароли и ключи в каждом окружении разные, и они никогда не должны попадать в image. В этом уроке мы различаем ARG, который существует только во время build, и ENV, который сохраняется в image и во время выполнения. Мы увидим, по
Конфигурация — это как карточка рецепта, которой можно поделиться со всеми. Секрет — это как ключ от вашего дома: вы никогда не приклеиваете его к рецепту и не раздаёте всем.
- ARG
- Значение, доступное только во время build образа. После завершения сборки оно исчезает и не существует во время выполнения. Полезно для параметров сборки, а не для конфигурации, нужной во время выполнения.
- ENV
- Переменная окружения, записанная в image, которая остаётся доступной во время выполнения. Удобна для нечувствительной конфигурации, но никогда не должна содержать секреты, поскольку она хранится в слоях image.
- утечка секрета
- Утечка чувствительных данных, потому что они были записаны в layer образа. Каждый слой хранится в истории, поэтому секрет, записанный однажды, доступен любому, кто скачивает image, — даже если более поздний слой его «удаляет».