说我们有一个像这样的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" .
答案 0 :(得分:1)
它的工作原理与您建议的完全一样。鉴于以下Dockerfile:
ARG base_image=alpine
FROM $base_image
我可以像这样构建它并获得基于Alpine的图像:
docker build -t test1 .
或者像这样获得基于Fedora的图像:
docker build -t test2 --build-arg base_image=fedora .
正如您所说,更改基本映像会使缓存无效。