【发布时间】:2021-10-11 01:36:05
【问题描述】:
我想构建一个能够在 docker 或本地 bash 中执行一些命令的 Makefile。所以,我尝试了这样的事情:
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 . 时,效果很好。我也尝试导出路径,但没有成功。
我该如何解决?还有其他更好的方法吗?非常感谢您的帮助!
【问题讨论】:
-
我建议你试试
BASH_CMD := /bin/sh -c看看是否可行。 -
谢谢你,@MadScientist!问题是我试图用 sudo 运行 Makefile。
-
显示您调用的确切命令以及错误总是很有帮助的。如果我们知道 sudo,我们几乎可以肯定能够立即解决问题。