首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成文件错误: make[1]:*没有将目标设置为“暂存”的规则。停

生成文件错误: make[1]:*没有将目标设置为“暂存”的规则。停
EN

Stack Overflow用户
提问于 2020-09-22 03:39:16
回答 1查看 195关注 0票数 0

把我的头发都扯出来了。我敢肯定这非常简单。当我运行时:

make django_servers ENV="staging"

在下面的Makefile中,当命中$(MAKE) scoring_worker_servers ${ENV}行时,我得到以下错误

make[1]: *** No rule to make target 'staging'. Stop.

我已经包含了整个Makefile。

代码语言:javascript
复制
# Put any command that doesn't create a file here (almost all of the commands)
.PHONY: \
    help \
    beat_servers \
    database_servers \
    default_celery_worker_servers \
    django_servers \
    webapp_servers \
    rabbit_servers \
    renew_ssl \
    scoring_worker_servers \

usage:
    @echo "Available commands:"
    @echo "help                     Display available commands"
    @echo "beat_servers             Push ansible config to beat_servers"
    @echo "database_servers         Push ansible config to database servers"
    @echo "default_celery_worker_servers    Push ansible config to default celery worker servers"
    @echo "django_servers           Push ansible config to django servers"
    @echo "webapp_servers           Push ansible config to webapp servers"
    @echo "rabbit_servers           Push ansible config to rabbit servers"
    @echo "renew_ssl                Renew SSL certificates and push to required servers"
    @echo "scoring_worker_servers   Push ansible config to scoring worker servers"

help:
    $(MAKE) usage

beat_servers:
    @ansible-playbook ansible/beat_servers.yml -i ansible/inventories/${ENV}/beat --vault-id ansible/password.txt

database_servers:
    @ansible-playbook ansible/database_servers.yml -i ansible/inventories/${ENV}/database --vault-id ansible/password.txt

default_celery_worker_servers:
    @ansible-playbook ansible/default_celery_worker_servers.yml -i ansible/inventories/${ENV}/default_celery_worker --vault-id ansible/password.txt

scoring_worker_servers:
    @ansible-playbook ansible/scoring_worker_servers.yml -i ansible/inventories/${ENV}/scoring_worker --vault-id ansible/password.txt

django_servers:
    @ansible-playbook ansible/django_servers.yml -i ansible/inventories/${ENV}/django --vault-id ansible/password.txt
    $(MAKE) default_celery_worker_servers ${ENV}
    $(MAKE) scoring_worker_servers ${ENV}
    $(MAKE) beat_servers ${ENV}

webapp_servers:
    @ansible-playbook ansible/webapp_servers.yml -i ansible/inventories/${ENV}/webapp --vault-id ansible/password.txt

rabbit_servers:
    @ansible-playbook ansible/rabbit_servers.yml -i ansible/inventories/${ENV}/rabbit --vault-id ansible/password.txt

renew_ssl:
    @certbot renew --dns-cloudflare-credentials /cloudflare/cloudflare.ini
    $(MAKE) django_servers ${ENV}
    $(MAKE) webapp_servers ${ENV}
EN

回答 1

Stack Overflow用户

发布于 2020-09-22 03:46:55

不能将ENV的值作为参数传递给make。但是你可以为它设置变量:

代码语言:javascript
复制
$(MAKE) scoring_worker_servers ENV=$(ENV)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63998943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档