Текст и данные · Инструкция
Как использовать secrets в Docker Compose вместо обычных environment variables
Секреты приложения лучше отделять от Dockerfile и обычных env-переменных, особенно если логирование или диагностика могу
Короткий ответ
Объявите secret и явно выдайте его service. В Linux-контейнере Compose предоставляет secret как файл в `/run/secrets/<имя>`, что снижает риск случайного вывода секрета как обычной переменной окружения.
Что делать
- Создайте файл с секретом вне исходного кода или подготовьте host environment variable для Compose.
- Добавьте top-level `secrets` с источником `file` или поддерживаемым `environment`.
- В service добавьте `secrets: - <имя>`.
- Измените приложение или image так, чтобы оно читало значение из `/run/secrets/<имя>`.
- Проверьте итоговый Compose config, не печатая само значение секрета.
- Пересоздайте service и проверьте доступность файла внутри контейнера.
Важно
- Не коммитьте файл с секретом в репозиторий.
- Не выводите secret в диагностические логи.
Что учитывать
Не коммитьте файл с секретом в репозиторий.,Не выводите secret в диагностические логи.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Manage secrets securely in Docker Compose). Пример и формулировки — редакция N1RO на 2026-09-18.