Я пытаюсь создать рецепт, который будет выполнять результаты моего пуха внутри моего docker контейнера, и скопировать results.xml
вне контейнера. Вот мой рецепт:
lint-results:
docker build --target lint path_to_my_src_dir -t $(my_lint_image_tag)
$(eval tmp_lint_container_id:=$(shell docker create $(my_lint_image_tag))) # This step seems to execute too quick
@echo my lint constainer id is $(tmp_lint_container_id)
docker cp $(tmp_lint_container_id):/usr/src/app/results.xml ./
docker rm -v $(tmp_lint_container_id)
У меня проблема в том, что после успешного создания $(my_lint_image_tag)
из сборки docker и перехода к созданию контейнера. Первый раз, когда происходит ошибка, вывод эхосигнала для $(tmp_lint_container_id)
будет пустым, но если я запустлю его снова, это сработает. Кажется, он только в первый раз завершается ошибкой, если изначально изображение отсутствовало, почти как при запуске команды shell
для быстрого создания образа docker.
Вот фрагмент кода, если вывод ошибки:
Removing intermediate container a6f4eb8ac404
---> 01cb85644929
Successfully built 01cb85644929
Successfully tagged my-lint-image-1.1.1.1:latest
my lint constainer id is
docker cp :/usr/src/app/results.xml ./
must specify at least one container source
make: *** [lint-results] Error 1
Есть ли способ убедиться, что docker образ существует до запуска команды shell
?