代码之家  ›  专栏  ›  技术社区  ›  Mr. Developerdude

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

  •  0
  • Mr. Developerdude  · 技术社区  · 7 年前

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


    到目前为止,我已经在 Dockerfile。A. :

    1. RUN export PATH=/my/new/dir:$PATH
      
    2. ENV PATH=/my/new/dir:$PATH
      
    3. RUN echo "PATH=/my/new/dir:$PATH" >/etc/profile
      

    并且在 Dockerfile。B ,分别为:

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

    2. ENV PATH
      
    3. RUN source /etc/profile
      

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

    那么我该怎么做呢?

    1 回复  |  直到 4 年前
        1
  •  4
  •   johnharris85    7 年前

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

    Dockerfile。A.

    FROM alpine:3.6
    ENV TEST=VALUE
    

    构建它。

    docker build -t imageA .
    

    Dockerfile。B

    FROM imageA
    CMD echo $TEST
    

    构建它。

    $ docker build -t imageB .
    

    运行它

    $ docker run -it imageB
    VALUE