首页 > 解决方案 > UUID 的默认 Docker 参数

问题描述

ARG如果没有提供一个作为构建参数的唯一 ID,是否可以将其默认为新的唯一 ID?

如果没有提供构建参数,是否有可能在构建时失败?

标签: dockerdockerfileuuiddocker-build

解决方案


如果没有提供构建参数,是否有可能在构建时失败?

是的,但是你应该ARGS在 Dockerfile 中设置任何默认值,或者如果设置默认值,那么你可以忽略条件中的默认值。

FROM alpine
ARG NODE_ENV
RUN if [ -z ${NODE_ENV} ];then \
    echo "No value provided for build ARGS, please provide NODE_ENV, like --build-arg NODE_ENV=dev" \
    exit 1; \
    else \
    echo "NODE_ENV is passed, value is ${NODE_ENV}"; \
    fi

所以如果你尝试过

docker build --build-arg NODE_ENV=test -t test_arg .

它会建立形象,但如果你累了喜欢

docker build  -t test_arg .

在这种情况下,构建将失败并打印一条消息以传递 NODE_ENV

在此处输入图像描述


推荐阅读