Make: зависимость от образа докера - PullRequest
0 голосов
/ 15 февраля 2019

Я использую рабочий процесс докера для генерации некоторых файлов на основе заданного спецификационного файла с использованием Makefile (он генерирует клиента в соответствии со спецификацией OpenAPI):

SWAGGER ?= ${PWD}/swagger.yaml
GENERATOR ?= openapitools/openapi-generator-cli\:latest

generated: Makefile ${SWAGGER}
    docker run --rm --user $$(id -u):$$(id -g) \
    -v ${PWD}:/output -v ${SWAGGER}:/input/swagger.yaml \
    ${GENERATOR} \
    generate -g python -i /input/swagger.yaml -o /output/generated \

это работает нормально, и восстановит, если я изменю входной файл SPEC.

Но он не перестраивается при изменении образа докера.

Допустим, я docker build изображение снова с тем же name:tag, но с другим кодом внутри, или я используюдругая помеченная версия исходного изображения, что угодно.Это отчасти ожидаемо, потому что Makefile не знает содержимого образа докера или даты его модификации.Как я могу заставить Makefile понимать зависимость от образа докера?

  • Я пытался docker inspect изображение, чтобы получить дату создания, но я не знаю, как сделать make понимать это как зависимость (если дата создания новее, чем выходной каталог, затем перестроить)
  • Я не могу просто добавить зависимость от кода внутри образа докера, потому что образ докера может даже не бытьбыли созданы из локально доступных файлов.

make, возможно, не является инструментом для такого рода вещей, возможно, есть что-то еще, что я мог бы использовать, который понимает зависимость образа докера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...