В Makefile есть несколько способов задать динамичные параметры. Один из самых распространенных способов - использовать переменные среды или аргументы командной строки.
Для использования переменных среды в Makefile, вам нужно определить их перед запуском make. Например, если вы хотите определить переменную VERSION
, вы можете сделать это следующим образом:
export VERSION := 1.0.0
И затем использовать $(VERSION)
внутри Makefile в нужных местах, например:
build: docker build -t myimage:$(VERSION) .
Теперь, при вызове make build
, Makefile будет использовать значение переменной VERSION
для построения образа Docker.
Еще один способ - использовать аргументы командной строки. Синтаксис для передачи аргументов в Makefile следующий:
make target ARG_NAME=value
Внутри Makefile, вы можете получить значение аргумента с помощью $(ARG_NAME)
. Например, если вы хотите передать аргумент VERSION
, вы можете сделать это следующим образом:
build: docker build -t myimage:$(VERSION) .
Теперь, при вызове make build VERSION=1.0.0
, значение переменной VERSION
будет равно 1.0.0
.
Вы также можете смешивать оба подхода, используя переменные среды и аргументы командной строки вместе. Например, вы можете определить переменную среды по умолчанию и использовать аргументы командной строки для ее переопределения:
export VERSION ?= 1.0.0 build: docker build -t myimage:$(VERSION) .
Теперь, если вы вызываете make build
, будет использовано значение переменной среды по умолчанию 1.0.0
. Однако, если вы вызываете make build VERSION=2.0.0
, значение переменной VERSION
будет переопределено на 2.0.0
.
Таким образом, в Makefile есть несколько способов задать динамичные параметры, и вы можете выбрать подход, который лучше всего подходит для вашей конкретной ситуации.