переменные docker-compose и переданные в оболочку env (опция -e) - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть docker-compose.yml, который ссылается на ${host_repo_dir}. Попытка запустить службу, определенную там следующим образом:

docker-compose run -e host_repo_dir=$(pwd) http-api

Выход:

WARNING: The host_repo_dir variable is not set. Defaulting to a blank string.

Что дает? Я думаю, что я следую https://docs.docker.com/compose/reference/run/.

мое окружение:

версия докера: 18.09.3

версия docker-compose: 1.24.0

Докер для Windows, доступ из WSL

Это проблема WSL?

Обновление: настройка env vars заранее работает, но, похоже, не всегда:

echo "host repo dir: ${host_repo_dir}, repo name: ${repository_name}, docker repo: ${docker_repository}"
docker-compose run \
    -e host_repo_dir \
    -e repository_name \
    -e docker_repository \
    ${repository_name} || ( cd ${previous_directory} ; exit 3 )

вывод:

host repo dir: /c/Users/muellmi1/projects/payoff-2015/http-api, repo name: http-api, docker repo: localhost.localdomain
WARNING: The docker_repository variable is not set. Defaulting to a blank string.

docker_repository был заранее установлен $1 в начале этого скрипта. Теперь я понимаю, что необходимо экспортировать переменных заранее. Так что у меня получилось запустить export [VARNAME] для каждой из переменных, которые впоследствии были переданы в docker-compose.

1 Ответ

1 голос
/ 01 апреля 2019

Предполагая, что host_repo_dir уже установлен и экспортирован , вы можете сделать.

docker-compose run -e host_repo_dir http-api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...