用参数进行制作

问题描述 投票:0回答:1

我的容器内有 python 脚本,需要两个参数才能运行。 我尝试使用 Makefile 运行脚本。

为此我做了 make 命令:

.PHONY: deploy

deploy:
    @docker exec -it ecosystem python3 deployment/deploy.py $(filter-out $@,$(MAKECMDGOALS))

当我运行

make deploy server project
时,脚本可以工作,但是当它完成时,我收到以下错误:
make: *** No rule to make target 'server'.  Stop.

python shell deployment makefile
1个回答
0
投票

make的命令行是保留给make使用的。您不能将其用于您自己的其他目的。命令行上的每个单词都必须是选项或选项参数、变量赋值或要构建的目标。

当您输入

make deploy server project
时,您是在告诉 make 构建三个目标:
deploy
server
project

你无法改变这一点。 Make 不是脚本解释器。

你可以这样做:

.PHONY: deploy

DEPLOY_ARGS =

deploy:
        @docker exec -it ecosystem python3 deployment/deploy.py $(DEPLOY_ARGS)

然后运行:

make deploy DEPLOY_ARGS='server project'
© www.soinside.com 2019 - 2024. All rights reserved.