使用具有多阶段构建的Dockerfile为每个构建参数命名一个阶段

时间:2019-04-11 15:23:02

标签: dockerfile docker-multi-stage-build

是否可以命名一个构建阶段? 我正在搜索类似以下示例的内容:

ARG NAME

FROM python:3.7-alpine as modul-${NAME}
# ...

如果我尝试此示例,则会发生此错误:

Error response from daemon: Dockerfile parse error line 5: invalid name for build stage: "modul-${NAME}", name can't start with a number or contain symbols

我还尝试将参数用作标记(modul:${NAME}),并得到相同的结果。

1 个答案:

答案 0 :(得分:1)

您可以使用BuildKit来做到这一点,它需要docker 18.09+。 (https://docs.docker.com/develop/develop-images/build_enhancements/

您要做的就是在构建之前设置一个env变量:

DOCKER_BUILDKIT=1 docker build -t whatever .

我认为没有BuildKit是不可能的。