Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用父Docker文件中的环境变量?_Docker_Environment Variables_Parameter Passing_Environment - Fatal编程技术网

如何使用父Docker文件中的环境变量?

如何使用父Docker文件中的环境变量?,docker,environment-variables,parameter-passing,environment,Docker,Environment Variables,Parameter Passing,Environment,我有两个DockerfileDockerfile.A和Dockerfile.B其中Dockerfile.B使用FROM关键字FROMDockerfile.A继承。在Dockerfile.A中,我设置了要在Dockerfile.B中使用的环境变量(路径)。这可能吗?我该怎么做 到目前为止,我在Dockerfile.A中尝试了以下内容: 分别在Dockerfile.B中: 只需使用路径中的工具查看它们是否可用(它们不可用) 我意识到每个RUN命令都是在它自己的环境中执行的

我有两个Dockerfile
Dockerfile.A
Dockerfile.B
其中
Dockerfile.B
使用FROM关键字FROM
Dockerfile.A
继承。在
Dockerfile.A
中,我设置了要在
Dockerfile.B
中使用的环境变量(路径)。这可能吗?我该怎么做


到目前为止,我在Dockerfile.A中尝试了以下内容:


  • 分别在
    Dockerfile.B
    中:

  • 只需使用路径中的工具查看它们是否可用(它们不可用)


  • 我意识到每个RUN命令都是在它自己的环境中执行的,这可能就是ENV关键字存在的原因,以便能够独立于RUN命令来处理环境。但我不确定这对我的案件意味着什么


    那么我该怎么做呢?

    对我来说就像预期的那样

    Dockerfile.A

    FROM alpine:3.6
    ENV TEST=VALUE
    
    建造它

    docker build -t imageA .
    
    $ docker build -t imageB .
    
    Dockerfile.B

    FROM imageA
    CMD echo $TEST
    
    建造它

    docker build -t imageA .
    
    $ docker build -t imageB .
    
    运行它

    $ docker run -it imageB
    VALUE
    

    这对我来说就像预期的那样

    Dockerfile.A

    FROM alpine:3.6
    ENV TEST=VALUE
    
    建造它

    docker build -t imageA .
    
    $ docker build -t imageB .
    
    Dockerfile.B

    FROM imageA
    CMD echo $TEST
    
    建造它

    docker build -t imageA .
    
    $ docker build -t imageB .
    
    运行它

    $ docker run -it imageB
    VALUE
    

    CMD没有运行,我想要在构建时的值,也不是tun时的值!我测试了您的示例,它在构建时也能工作,所以这对我来说不起作用肯定还有其他原因。谢谢CMD没有运行,我想要在构建时的值,也不是tun时的值!我测试了您的示例,它在构建时也能工作,所以这对我来说不起作用肯定还有其他原因。谢谢