Змінні Середовища та Конфігурація у Compose
Використання змінних середовища у docker-compose.yml
Змінні середовища дозволяють створювати гнучкі та повторно використовувані конфігурації Docker Compose. Визначаючи змінні, ви уникаєте жорсткого кодування значень, таких як порти, теги образів або облікові дані, безпосередньо у файлі docker-compose.yml. Натомість ви посилаєтеся на ці змінні, і Docker Compose підставляє їх значення під час виконання. Такий підхід особливо корисний при розгортанні одного й того ж застосунку в різних середовищах, наприклад, для розробки, тестування чи продакшну.
Щоб визначити та використовувати змінні середовища у файлі Compose, виконайте такі кроки:
- Зберігайте змінні середовища у файлі
.envу тій самій директорії, що й вашdocker-compose.yml; - Посилайтеся на змінні у файлі Compose за допомогою синтаксису
${VARIABLE_NAME}; - Перезаписуйте змінні, передаючи їх безпосередньо у shell або як частину CI/CD-процесу.
Припустимо, ви хочете налаштувати пароль бази даних і порт застосунку за допомогою змінних середовища. Створіть файл .env зі вмістом:
DB_PASSWORD=supersecret
APP_PORT=8080
У вашому docker-compose.yml посилайтеся на ці змінні так:
version: "3.8"
services:
web:
image: myapp:latest
ports:
- "${APP_PORT}:80"
environment:
- DB_PASSWORD=${DB_PASSWORD}
Під час запуску docker-compose up Docker Compose підставить значення з файлу .env у конфігурацію. Такий метод дозволяє зберігати чутливі або специфічні для середовища дані поза файлом Compose і робить вашу конфігурацію більш портативною.
Керування секретами та чутливими даними у файлах Compose
Хоча змінні середовища зручні, вони не завжди є найбезпечнішим способом обробки чутливої інформації, такої як паролі, API-ключі чи сертифікати. Змінні середовища можуть бути випадково розкриті через логи, списки процесів або систему контролю версій, якщо ними не управляти належним чином. Для підвищення безпеки можна використовувати кілька технік для керування секретами у Docker Compose:
- Зберігайте чутливі значення у окремому файлі
.envі переконайтеся, що цей файл виключено з контролю версій за допомогою.gitignore; - Використовуйте підтримку Docker secrets якщо ви розгортаєте з Docker Swarm, що дозволяє безпечно монтувати секрети як файли всередині контейнерів;
- Посилайтеся на секрети як на файли на хості та монтуйте їх у контейнер за допомогою ключа
volumesу файлі Compose.
Приклад: Щоб уникнути розкриття пароля бази даних, збережіть його у файлі db_password.txt і змонтуйте у контейнер:
services:
db:
image: postgres:latest
volumes:
- ./db_password.txt:/run/secrets/db_password
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
Такий підхід дозволяє зберігати сам секрет поза файлом Compose і змінними середовища, зменшуючи ризик випадкового розкриття. Завжди перевіряйте свою конфігурацію та робочі процеси, щоб переконатися, що секрети захищені, і ніколи не комітьте чутливі дані у систему контролю версій.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 7.14
Змінні Середовища та Конфігурація у Compose
Свайпніть щоб показати меню
Використання змінних середовища у docker-compose.yml
Змінні середовища дозволяють створювати гнучкі та повторно використовувані конфігурації Docker Compose. Визначаючи змінні, ви уникаєте жорсткого кодування значень, таких як порти, теги образів або облікові дані, безпосередньо у файлі docker-compose.yml. Натомість ви посилаєтеся на ці змінні, і Docker Compose підставляє їх значення під час виконання. Такий підхід особливо корисний при розгортанні одного й того ж застосунку в різних середовищах, наприклад, для розробки, тестування чи продакшну.
Щоб визначити та використовувати змінні середовища у файлі Compose, виконайте такі кроки:
- Зберігайте змінні середовища у файлі
.envу тій самій директорії, що й вашdocker-compose.yml; - Посилайтеся на змінні у файлі Compose за допомогою синтаксису
${VARIABLE_NAME}; - Перезаписуйте змінні, передаючи їх безпосередньо у shell або як частину CI/CD-процесу.
Припустимо, ви хочете налаштувати пароль бази даних і порт застосунку за допомогою змінних середовища. Створіть файл .env зі вмістом:
DB_PASSWORD=supersecret
APP_PORT=8080
У вашому docker-compose.yml посилайтеся на ці змінні так:
version: "3.8"
services:
web:
image: myapp:latest
ports:
- "${APP_PORT}:80"
environment:
- DB_PASSWORD=${DB_PASSWORD}
Під час запуску docker-compose up Docker Compose підставить значення з файлу .env у конфігурацію. Такий метод дозволяє зберігати чутливі або специфічні для середовища дані поза файлом Compose і робить вашу конфігурацію більш портативною.
Керування секретами та чутливими даними у файлах Compose
Хоча змінні середовища зручні, вони не завжди є найбезпечнішим способом обробки чутливої інформації, такої як паролі, API-ключі чи сертифікати. Змінні середовища можуть бути випадково розкриті через логи, списки процесів або систему контролю версій, якщо ними не управляти належним чином. Для підвищення безпеки можна використовувати кілька технік для керування секретами у Docker Compose:
- Зберігайте чутливі значення у окремому файлі
.envі переконайтеся, що цей файл виключено з контролю версій за допомогою.gitignore; - Використовуйте підтримку Docker secrets якщо ви розгортаєте з Docker Swarm, що дозволяє безпечно монтувати секрети як файли всередині контейнерів;
- Посилайтеся на секрети як на файли на хості та монтуйте їх у контейнер за допомогою ключа
volumesу файлі Compose.
Приклад: Щоб уникнути розкриття пароля бази даних, збережіть його у файлі db_password.txt і змонтуйте у контейнер:
services:
db:
image: postgres:latest
volumes:
- ./db_password.txt:/run/secrets/db_password
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
Такий підхід дозволяє зберігати сам секрет поза файлом Compose і змінними середовища, зменшуючи ризик випадкового розкриття. Завжди перевіряйте свою конфігурацію та робочі процеси, щоб переконатися, що секрети захищені, і ніколи не комітьте чутливі дані у систему контролю версій.
Дякуємо за ваш відгук!