false .out 출력을 사용하지 않도록 이 Makefile을 리팩토링하려면 어떻게 해야 합니까?

false .out 출력을 사용하지 않도록 이 Makefile을 리팩토링하려면 어떻게 해야 합니까?

각각을 테스트 했으며 tests/FILENAME-test.shDocker 컨테이너 내에서 스크립트를 실행하고 싶습니다.

TEST_OUTPUTS이 Makefile이 내 것처럼 작동 하지 않도록 어떻게 리팩토링할 수 있나요 ?

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).

관련 정보