Makefile中的嵌套变量为docker提供条件支持

问题描述 投票:0回答:1

我在由我的Makefile调用的环境文件中设置了变量。我想根据环境条件选择一个设置变量。有没有办法嵌套两个变量以创建新变量?

示例环境文件

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),以便可以通过FILE_VERSION_11 env变量将11.0.4传递给docker build。

docker makefile
1个回答
0
投票

尝试一下:

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

并且在Dockerfile中,您需要通过passed选项指定哪些args可以是--build-arg

FROM <image>

ARG FILE_VERSION

RUN echo $FILE_VERSION
© www.soinside.com 2019 - 2024. All rights reserved.