给出此Dockerfile: 此 但是这个 为什么不在同一行中设置的docker为什么不选择env变量? 版本: 编辑: 答案 0 :(得分:1) 在提供的示例中,您仅声明了 您也可以使用不带值的--build-arg标志,在这种情况下,本地环境中的值将传播到正在构建的Docker容器中 内置的 根据man page, 如果在环境规范之后未指定命令名称,则会打印结果环境。就像指定命令名称“ printenv”一样。 最后,要设置环境变量,必须使用内置的 根据man page, 提供的名称已标记为可自动导出到随后执行的命令的环境中。ARG PY_VERSION
FROM python:${PY_VERSION}-buster
CMD python -V
docker build . --build-arg PY_VERSION=3.8
而这个PY_VERSION=3.8 docker build . --build-arg PY_VERSION
的工作。PY_VERSION=3.8
echo $PY_VERSION
3.8
docker build . --build-arg PY_VERSION
Sending build context to Docker daemon 2.048kB
Step 1/3 : ARG PY_VERSION
Step 2/3 : FROM python:${PY_VERSION}-buster
invalid reference format
Docker version 19.03.5, build 633a0ea
GNU bash, version 5.0.11(1)-release (x86_64-apple-darwin19.0.0)
我知道我可以使用docker build . --build-arg PY_VERSION=$PY_VERSION
,只是想知道为什么我提供的示例不起作用1 个答案:
PY_VERSION
,但没有为其分配值。
env
命令可用于显示可用的环境变量。
export
命令。