如何在Makefile中并行运行同一目标、传入不同参数构建多Docker镜像
正确实现方案
直接给出可直接使用的Makefile写法:
# 配置所有需要构建的服务名称,新增服务直接追加到此处即可 SERVICES := service1 service2 # 主目标:构建所有服务镜像 .PHONY: docker docker: $(SERVICES) # 伪目标声明:避免目录下存在和服务名同名的文件时构建不执行 .PHONY: $(SERVICES) # 模式规则:匹配任意服务名,执行对应Docker构建逻辑 $(SERVICES): docker build -t $@:latest -f ./$@/Dockerfile .
使用方式
- 普通串行构建所有镜像:
make docker - 并行构建所有镜像,比如同时运行2个构建任务:
make -j2 docker - 单独构建某一个服务的镜像,比如仅构建service1:
make service1
内容的提问来源于stack exchange,提问作者Djoby
相关产品推荐
相关产品推荐

