>假设我们有一个像这样的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 .
正如您所说,更改基本映像会使缓存失效。