Проблемы с передачей переменных в docker-compose cli
Всем привет.
Есть у меня такой docker-compose:
version: '3.6'
services:
redis2:
image: redis:5
ports:
- ${PORT}:6379
Я его запускаю с помощью cli: docker-compose run -e PORT=6379 -d redis2
Получаю ошибку: The "PORT" variable is not set. Defaulting to a blank string.
Но какого? Это должно работать согласно документации...
Ответы (1 шт):
Флаг -e в команде docker-compose позволяет устанавливать переменные окружения внутри контейнера (https://docs.docker.com/compose/reference/run/), т.е. запустите контейнер и выполните в нем echo $PORT, тогда вы и увидете нужно значение.
Если же вам нужно передать порт в docker-compose команду (чтобы это использовать в docker-compose.yml файле как параметр), вы можете задать значение этого параметра перед командой, например (этот синтаксис работает в bash на Linux/WSL/MacOS, для CMD/PowerShell скорее всего нужно что-то другое):
PORT=6379 docker-compose run -d redis2
или если вам нужно определить переменную отдельно, то можно:
export PORT=6379
docker-compose run -d redis2