我试图使用一个例子从Docker文档上的ARG
FROM ubuntu
ARG TEST
ENV TEST=${TEST:foo}
RUN echo $TEST
Docker docs说:
本例中的变量展开技术允许您从命令行,并通过利用
ENV
指令将它们保存在最终映像中。
生成失败,出现以下错误:
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM ubuntu
latest: Pulling from library/ubuntu
16ec32c2132b: Pull complete
Digest: sha256:82becede498899ec668628e7cb0ad87b6e1c371cb8a1e597d83a47fac21d6af3
Status: Downloaded newer image for ubuntu:latest
---> 1318b700e415
Step 2/4 : ARG TEST
---> Running in 4130b437fd93
Removing intermediate container 4130b437fd93
---> a31b0f8a81ff
Step 3/4 : ENV TEST=${TEST:foo}
failed to process "${TEST:foo}": unsupported modifier (f) in substitution
为什么不工作?这个错误听起来像是我和我的docker引擎之间的一个完全的误解。
OS: Ubuntu 20.04.3 LTS引擎:Docker版本20.10.8,build 3967b7d
您缺少-
,它应该是:
FROM ubuntu
ARG TEST
ENV TEST=${TEST:-foo}