我tests/FILENAME-test.sh
对每个测试都进行了测试,我想在 docker 容器内运行脚本。
我怎样才能重构这个Makefile,使其不像TEST_OUTPUTS
我一样使用?
另外,如何使每个docker run
命令并行运行?
.PHONY: test image
TESTS=$(wildcard tests/*-test.sh)
TEST_OUTPUTS=$(patsubst %.sh,%.out,$(TESTS))
%.out: %.sh image
@sudo docker run -t box-test /bin/bash "-c" "./$^"
test: $(TEST_OUTPUTS)
@echo
image:
@sudo docker build -q -t box-test .
答案1
这里是:
.PHONY: test image
TESTS=$(wildcard tests/*-test.sh)
test: $(TESTS)
$(TESTS): image
@sudo docker run -t box-test /bin/bash "-c" "./$@"
image:
@sudo docker build -q -t box-test .
对于docker run
并行运行的命令,只需使用make -j test
(您可以使用 指定最大并发运行数-j
)。