4Manuals

  • PDF Cloud HOME

在单独的行中定义时,Docker build-arg不会自动选择env变量 Download

    尝试使用unix:///var/run/docker.sock 如何在多用户的Mac上设置我的docker gitlab数据文件夹? 如何使用docker文件中的curl在容器中发布json文件 有人可以告诉我错误在哪里吗 如何配置Docker DOCROOT以运行symfony 如何访问从Docker容器暴露的端口? 无法删除目录中的所有文件 Python没有这样的文件或目录,但有文件[Celery,Docker] 使用package.json脚本时,git bash无法识别“环境路径” 在什么情况下会重建Docker项目?

给出此Dockerfile:

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为什么不选择env变量?

版本:
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 个答案:

答案 0 :(得分:1)

在提供的示例中,您仅声明了PY_VERSION,但没有为其分配值。

根据documentation,

  

您也可以使用不带值的--build-arg标志,在这种情况下,本地环境中的值将传播到正在构建的Docker容器中

内置的env命令可用于显示可用的环境变量。

根据man page,

  

如果在环境规范之后未指定命令名称,则会打印结果环境。就像指定命令名称“ printenv”一样。

最后,要设置环境变量,必须使用内置的export命令。

根据man page,

  

提供的名称已标记为可自动导出到随后执行的命令的环境中。



Similar searches
    如何使我的计算机直接启动到Windows? SetFocus是功能吗? 如何基于Swing中的变量值启用-禁用Jbutton Samsung DA6801890C Refrigerator User Manual 无法获取Unity Firebase用户ID