n1ro°
RU

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

Как использовать secrets в Docker Compose вместо обычных environment variables

Секреты приложения лучше отделять от Dockerfile и обычных env-переменных, особенно если логирование или диагностика могу

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

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

Объявите secret и явно выдайте его service. В Linux-контейнере Compose предоставляет secret как файл в `/run/secrets/<имя>`, что снижает риск случайного вывода секрета как обычной переменной окружения.

Что делать

  1. Создайте файл с секретом вне исходного кода или подготовьте host environment variable для Compose.
  2. Добавьте top-level `secrets` с источником `file` или поддерживаемым `environment`.
  3. В service добавьте `secrets: - <имя>`.
  4. Измените приложение или image так, чтобы оно читало значение из `/run/secrets/<имя>`.
  5. Проверьте итоговый Compose config, не печатая само значение секрета.
  6. Пересоздайте service и проверьте доступность файла внутри контейнера.

Важно

  • Не коммитьте файл с секретом в репозиторий.
  • Не выводите secret в диагностические логи.

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

Не коммитьте файл с секретом в репозиторий.,Не выводите secret в диагностические логи.

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

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