如何避免在Makefile中运行bash命令时找不到命令?



我想构建一个Makefile,它能够在docker或本地bash中执行一些命令。所以,我试着这样的:

BASH_CMD := bash -c
DOCKER_CMD := docker exec api bash -c
RUN_CMD = $(BASH_CMD)
ifeq ($(USE_DOCKER), true)
RUN_CMD = $(DOCKER_CMD)
endif
flake8:
@echo "<<< Running flake8 >>>"
$(RUN_CMD) "flake8 ."

问题是环境变量USE_DOCKER没有被加载(我正在导出它),flake8步骤给了我以下错误:

bash: flake8: command not found
make: *** [Makefile:11: flake8] Erro 127

当我尝试在bash中直接运行flake8 .时,它工作得很好。我也尝试导出路径,但是没有成功。

我怎么解决它?有没有其他更好的方法?非常感谢你的帮助!

问题与sudo命令有关。root用户没有可用的包或环境变量。

代替下面的命令:

sudo make flake8

这个解决了问题:

make flake8

相关内容

  • 没有找到相关文章

最新更新