从 docker 导出 makefile 中的环境变量不起作用?



我创建了以下 Makefile,如果我调用 docker-test,它将运行 docker,然后在本地调用 makefile build-test 目标。

当我手动运行 docker 并在 docker 中调用 makefile 时,它工作得很好,变量NETDIR设置正确,但是当我从主机调用它时,使用make docker-testdocker 中的变量NETDIR定义为/src而不是/usr/app/networker/src

export NETDIR=$(PWD)/src
docker-%:
docker run --rm -v "$(PWD)":/usr/app/networker -w /usr/app/networker network make $(@:docker-%=build-%)
clean-%:
cd ./build && $(MAKE) $@

build-%:
cd ./build && $(MAKE) $@

您需要在 docker run 命令中指定环境变量。如

docker run --rm -v "$(PWD)":/usr/app/networker -e NETDIR -w /usr/app/networker network make $(@:docker-%=build-%)

(这将告诉容器从父环境继承NETDIR,或者您可以选择设置一个值)

最新更新