#docker #docker-compose
#docker #docker-compose
Вопрос:
У меня есть 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 /.
моя среда:
версия docker: 18.09.3
версия docker-compose: 1.24.0
docker для Windows, доступ к которому осуществляется из WSL
Это проблема WSL?
Обновление: предварительная настройка переменных env работает, но, по-видимому, не всегда:
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:
Предполагая, что host_repo_dir уже установлен и экспортирован, вы можете сделать.
docker-compose run -e host_repo_dir http-api
Комментарии:
1. действительно, похоже, это работает! не работает ли синтаксис KEY = VAL из-за ошибки docker-compose, или я что-то упускаю из виду?