首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语句在Makefile中检测停靠图像,如果存在,则删除它。

语句在Makefile中检测停靠图像,如果存在,则删除它。
EN

Stack Overflow用户
提问于 2021-12-04 18:08:23
回答 1查看 990关注 0票数 2

我在Makefile中有一个简单的if语句,如果存在删除停靠图像,但是它不能工作。注意,在日志文件映像中存在,但当我执行时,如果语句失败,则make clean

代码语言:javascript
复制
NAME=program1

all: .docker-build
    docker run ${NAME} make all

.docker-build:
    docker build . -t ${NAME}
    @echo "" > .docker-build

run-%: .docker-build
    docker run ${NAME} make $*

clean:
ifeq ($(docker images -q ${NAME} 2> /dev/null), "")
    docker image rm -f ${NAME}
endif
    @rm -f .docker-build

日志(注意图像存在,但如果make clean内部的语句失败):

代码语言:javascript
复制
➜  dockerfile-test docker images -q program1 2> /dev/null
5ee4797b91ad
➜  dockerfile-test make clean                            
rm -f .docker-build
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-04 18:51:53

这是:

代码语言:javascript
复制
ifeq ($(docker images -q ${NAME} 2> /dev/null), "")

展开名为docker images -q program1 2> /dev/null的make变量,该变量不存在,因此扩展到空字符串,然后将其与两个字符的字符串""进行比较,并且它永远不匹配。

你可能是说:

代码语言:javascript
复制
ifeq ($(shell docker images -q ${NAME} 2> /dev/null),)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70228203

复制
相关文章

相似问题

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