我有一个构建docker镜像的make目标,它存储在独占的Docker空间中,无法显式定位。它看起来是这样的:
.PHONY: docker-build
docker-build: Dockerfile a.txt b.txt
docker build -t my-image .命令docker build -t my-image .仅依赖于源文件Dockerfile a.txt b.txt,但输出不是我可以轻松定位的显式文件,因此docker-build是一个PHONY目标。
理想情况下,只要Dockerfile a.txt b.txt不变,就永远不会执行docker-build。是否将docker-build声明为PHONY并不重要,因为docker-build总是会被执行。我可以显式地使用touch docker-build,但是使用虚拟文件有很多缺点。有什么办法可以解决这个问题吗?
我想过使用.INTERMEDIATE,但问题是docker-build将被显式地调用(make docker-build),所以只有在没有显式调用docker-build的情况下它才能工作。
发布于 2020-07-08 03:50:32
为什么不能直接使用前哨文件呢?类似于:
docker-build: .last-build
.last-build: Dockerfile a.txt b.txt
docker build -t my-image .
@touch $@https://stackoverflow.com/questions/62772256
复制相似问题