【问题标题】:Saving bash output in Dockerfile as ENV var将 Dockerfile 中的 bash 输出保存为 ENV var
【发布时间】:2021-08-09 22:25:09
【问题描述】:

我正在设置一个随机密码,用于在我的Dockerfile 中进行初始登录。我试过了

ENV PASSWORD=RUN date +%s | sha256sum | base64 | head -c 32

这不起作用,因为 Docker 命令位于不同的容器中。我也试过了

RUN export PASSWORD= date +%s | sha256sum | base64 | head -c 32

这也失败了。

我也尝试将我的输出重定向到一个文件,这也失败了,文件保持为空并且没有给出错误。

RUN date +%s | sha256sum | base64 | head -c 32 > test.txt

如何将此命令的输出保存为 ENV var,以便在我的 Docker 容器中使用?

【问题讨论】:

    标签: bash docker dockerfile


    【解决方案1】:

    以下 Dockerfile:

    FROM alpine:latest
    RUN echo "bd" > /test.txt
    

    当运行时存在test.txt 文件:

    docker build . -t test:latest
    docker run -it --rm test:latest
    > cat /test.txt
    > 'bd'
    

    您可以更改命令以sourceable 方式(RUN echo "my_env_var=$(echo 'stuff')" > /test.txt)写入文件,然后让您的入口点包含. /test.txt

    【讨论】:

    • 我尝试了上面提供的简单示例。仍然没有任何内容输出到文件,也没有报告错误
    猜你喜欢
    • 2020-03-09
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    相关资源
    最近更新 更多