#docker #docker-compose #docker-desktop
Вопрос:
Я хочу использовать файл среды ( env_file
) для передачи нетронутых переменных оболочки. Каков правильный синтаксис?
Мое docker-compose.yaml
досье:
version: "3.9"
services:
daemon:
image: my-image
env_file:
- ./env/docker.development.env
...
Мой env
файл (раньше работал, но больше не работает):
ASPNETCORE_ENVIRONMENT=Development
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_ACCESS_KEY_ID
И AWS_SECRET_ACCESS_KEY
раньше передавались из переменных оболочки. Это больше не работает.
Я пытался:
AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
Результирующие переменные среды в контейнере всегда пусты. В документации, похоже, говорится, что это должно работать.
Когда это делается из docker-compose.yaml
environment
предложения, то это все равно работает, т. е.
...
image: my-image
environment:
- ASPNETCORE_ENVIRONMENT=Development
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
но я хочу сделать это из общего env_file
, чтобы избежать повторения за все мои услуги.
Примечание: Использование рабочего стола Docker для Windows с подсистемой Linux версии 4.0.1 (68347)
Ответ №1:
Прочитав примечания к выпуску, я понял, что есть новая опция «Docker Compose V2».
Из GitHub видно, что с Compose V2 и переменными среды все еще остается много проблем. Снятие флажка решает проблему.