Вложенные переменные в Makefile для обеспечения условной поддержки docker - PullRequest
0 голосов
/ 06 января 2020

У меня есть переменные, установленные в файле env, который вызывается моим Makefile. Я хотел бы выбрать набор переменных в зависимости от условий среды. Есть ли способ вложить две переменные в новую переменную?

Пример файла env

FILE_VERSION_11=11.0.4

Выполнение

VER=11 make build

Пример Makefile (очевидно, не работает)

.PHONY: all
.PHONY: build
.PHONY: clean
.PHONY: help
.PHONY: test

include env

build: ## Build
build:
  docker image build --pull -t container:file-version-$(VER) \
  --build-arg FILE_VERSION=$(FILE_VERSION_$VER)

В надежде получить переменную $(FILE_VERSION), теперь можно переписать ее как $(FILE_VERSION_11), чтобы 11.0.4 можно было передать в сборку docker через переменную FILE_VERSION_11 env.

1 Ответ

0 голосов
/ 06 января 2020

Попробуйте это:

--build-arg FILE_VERSION=$(FILE_VERSION_$(VER))

И в Dockerfile вам нужно указать, какие аргументы могут быть переданы через --build-arg опция:

FROM <image>

ARG FILE_VERSION

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