Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Змінні Середовища та Конфігурація в Compose | Робота з Docker Compose
Основи Docker

Змінні Середовища та Конфігурація в 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 і змінними середовища, зменшуючи ризик випадкового розкриття. Завжди перевіряйте свою конфігурацію та робочі процеси, щоб переконатися, що секрети захищені, і ніколи не додавайте чутливі дані до системи контролю версій.

question mark

Яка основна перевага використання змінних середовища у файлі Docker Compose?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 3. Розділ 4
some-alt