переменные в Docker Compose |
Есть несколько частей Compose, которые в том или ином смысле имеют дело с переменными среды. Краткие примечания ниже помогут вам понять это и позволят вам понять решение Microsoft для микросервисов (eShopContainer) —
- Переменная среды указывается в файле компоновки как ${ПЕРЕМНАЯ}
- Вы можете заменить переменную среды, добавив их в .env или указав путь с помощью —env-файл вариант.
- Файл .env загружается по умолчанию, передача аргумента —env-file переопределяет путь к файлу по умолчанию.
- Оба {ПЕРЕМЕННАЯ} синтаксис поддерживается.
- ${ПЕРЕМНАЯ:-по умолчанию} принимает значение по умолчанию, если переменная VARIABLE не установлена или пуста в среде.
- ${ПЕРЕМНАЯ-по умолчанию} принимает значение по умолчанию, только если переменная VARIABLE не установлена в среде.
- ${ПЕРЕМНАЯ:?ошибка} завершается с сообщением об ошибке, содержащим err, если переменная VARIABLE не установлена или пуста в среде.
- ${ПЕРЕМНАЯ?ошибка} завершается с сообщением об ошибке, содержащим err, если VARIABLE не установлена в среде.
- Файл .env помещается в начало каталога проекта.
- Вы можете убедиться в этом с помощью конвертировать Команда, которая выводит вашу разрешенную конфигурацию приложения на терминал.
Передав файл в качестве аргумента, вы можете хранить его где угодно и называть соответствующим образом, например, .env.ci, .env.dev, .env.prod.
docker compose --env-file ./config/.env.dev up
Пример
Создать файл .env в каталоге вашего проекта и вставьте следующее:
USER_NAME='user'
PASSWORD='password#123'
Создать файл докер-compose.yml в каталоге вашего проекта и вставьте следующее:
version: '3.2'
services:
my_rabbit:
container_name: my_rabbit
image: rabbitmq:3-management
ports:
- "5672:5672"
- "8080:15672"
environment:
RABBITMQ_DEFAULT_USER: ${USER_NAME}
RABBITMQ_DEFAULT_PASS: ${PASSWORD}
Теперь, чтобы проверить замену, используйте конвертировать команда, как показано ниже —
docker compose convert
Выход