【问题标题】:Reusing docker environment variables in CLI在 CLI 中重用 docker 环境变量
【发布时间】:2017-07-06 13:55:30
【问题描述】:

想象一下有一个像这样的 Dockerfile

FROM ubuntu:latest
ENV HELLO_WORLD=hello
CMD echo $HELLO_WORLD

我想从命令行重用这个变量:

> docker build -t hello .
> docker run -e HELLO_WORLD='$HELLO_WORLD world' hello
$HELLO_WORLD world

我希望这会产生hello world

现在,我知道我可以在 docker-compose 和 Dockerfile 中做到这一点,但我想知道是否有机会从 CLI 实现这种组合/重用?

编辑: 所以我试图在 docker-compose 中实现相同的目标,但我无法重用容器中的变量

> cat docker-compose.yml
version: '2'
services:
  hello:
    image: 'hello'
    environment:
     - HELLO_WORLD="${HELLO_WORLD} world"

> docker-compose up hello
 world

似乎只有 2 个地方可以访问 ENV,即 Dockerfile,然后是在该 docker 映像中运行的可执行文件/脚本 :(

【问题讨论】:

    标签: docker command-line-interface


    【解决方案1】:

    ENV 指令在构建时使用,而不是在运行时使用。

    如果要持久化数据,请将其写入文件。

    【讨论】:

    • 感谢您的回复。我不是在尝试持久化数据,而是在 docker CLI 中设置新环境变量时尝试使用 ENV 变量重用 Dockerfile 中设置的变量。
    猜你喜欢
    • 2016-07-16
    • 2016-02-20
    • 2020-12-07
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多