使用 --build-arg 修改 Docker 图像中的 FROM 子句

Using --build-arg to modify FROM clause in Docker image

假设我们有一个像这样的 Dockerfile:

FROM node:9

我们使用以下方法构建它:

docker build -t foo .

我的问题是 - 有没有办法使用 --build-arg 更改 FROM 子句,如下所示:

ARG NODE_VERSION
FROM node:$NODE_VERSION

以及构建:

docker build -t foo --build-arg NODE_VERSION="8" .

它的工作原理与您提议的完全一样。给定以下 Dockerfile:

ARG base_image=alpine
FROM $base_image

我可以这样构建它并获得一个基于 Alpine 的图像:

docker build -t test1 .

或者像这样获取基于 Fedora 的镜像:

docker build -t test2 --build-arg base_image=fedora .

正如您所说,更改基本图像会使缓存失效。