我创建了以下Makefile,如果我调用docker-test,它将运行docker,然后在本地调用makefile build-test目标。
当我手动运行docker并在docker内部调用makefile时,它工作得很好,变量NETDIR设置正确,但是当我从主机调用它时,使用make docker-test,docker内部的变量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) $@发布于 2018-02-19 23:49:59
您需要在docker run命令中指定环境变量。比如
docker运行--rm -v "$(PWD)":/usr/app/networker -e NETDIR -w /usr/app/networker网络生成$(@:docker-%=内部版本-%)
(这将告诉容器从父环境继承NETDIR,或者您可以选择设置一个值)
https://stackoverflow.com/questions/48869552
复制相似问题