docker-compose和传入的外壳环境变量(-e选项)

时间:2019-04-01 13:17:05

标签: docker docker-compose

我有一个引用${host_repo_dir}的docker-compose.yml。尝试运行在此定义的服务,如下所示:

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

用于Windows的docker,可从WSL访问

这是WSL问题吗?

更新:预先设置环境变量可以进行排序,但似乎并非总是如此:

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 变量。因此,对我有用的是为随后传递给docker-compose的每个变量运行export [VARNAME]

1 个答案:

答案 0 :(得分:1)

假设host_repo_dir已设置并已导出,则可以。

docker-compose run -e host_repo_dir http-api