docker FROM中可以使用一个variables吗?
我想知道如果一个envvariables可以在docker使用? 原因是要控制标记。 例如,说我在我的Dockerfile中有这条线:
From myApp
我想要的是这样的:
From myApp:${VERSION}
这样我可以说docker build . myApp --build-arg VERSION=9
docker build . myApp --build-arg VERSION=9
为这个应用程序构build泊坞窗图像的过程是相同的。 我不希望有Dockerfiles几乎相同,只是使用不同的基础镜像。如果我想构build版本9,它应该使用版本9的基础镜像。
你可以简单地从一个模板生成你的Dockerfile。 把这样的东西放在一个Makefile中:
MYTAG=latest .PHONY: Dockerfile Dockerfile: Dockerfile.in sed 's/MYTAG/$(MYTAG)/' $< > $@ || rm -f $@
然后你可以运行:
make MYTAG=8; docker build -t my-app-8 .
如果您经常在FROM
行中构build需要不同标签的图片,这样做才有意义。
这不可能。
虽然,您可以使用from myApp:latest
的variables标签from myApp:latest
并在创build新版本时覆盖latest
标签。
不幸的是,这是不可能的。 你的Dockerfile的第一行必须是一个FROM
指令,所以不能使用ARG
指令。 关于生成Dockerfile有一个很好的答案,但我也想build议仅仅创build不同的Docker文件,然后在你的docker docker build
命令中使用-f
开关指定一个特定的文件:
docker build -t codemiester/app:latest -f ./Dockerfile.apache2.ubuntu