我有一個Makefile的一些基本泊塢窗命令:空「泊塢窗圖片」中的Makefile
all: build
build:
docker build .
DOCKER_CONTAINERS=$(docker ps -a -q)
DOCKER_IMAGES=$(docker images -q)
clean:
ifdef $(DOCKER_CONTAINERS)
@echo "Stopping Docker containers..."
docker stop $(DOCKER_CONTAINERS)
@echo "Deleting Docker containers..."
docker rm $(DOCKER_CONTAINERS)
endif
iclean:
ifdef $(DOCKER_IMAGES)
@echo "Deleting Docker images..."
docker rmi $(DOCKER_IMAGES)
endif
,並想用最後一個清理現有的圖片,我確實有一些圖片:
$ docker images -q
aaa5a74f6006
099dec0df83b
c9889c81a971
bddca31db222
d85328b9bf58
dd6f76d9cc90
然而,DOCKER_IMAGES
似乎並不在規則中定義(我查了一倍,後來通過顯示它):
$ make iclean
make: Nothing to be done for 'iclean'.
它正常工作與clean
:
$ make clean
Stopping Docker containers...
docker stop $(docker ps -a -q)
f33d30ddc991
35d4d9262460
9ac0507e0b7b
59ff62aa1c0a
2d623e844c23
cb013d3919f4
Deleting Docker containers...
docker rm $(docker ps -a -q)
f33d30ddc991
35d4d9262460
9ac0507e0b7b
59ff62aa1c0a
2d623e844c23
cb013d3919f4
我在做什麼錯在這裏?
你有一個名爲'iclean'的文件嗎?無論如何,您應該將您的目標定義爲[PHONY](https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html)。 – kichik