【问题标题】:Docker build not recognizing environment variable passed as `build-arg`Docker构建无法识别作为`build-arg`传递的环境变量
【发布时间】:2020-11-14 23:49:35
【问题描述】:

我查看了Can we pass ENV variables through cmd line while building a docker image through dockerfile?,它向我展示了如何使用docker build 传递环境变量。在看到没有定义环境变量后,我查看了Passing environment variables not working with Docker,但这涉及通过docker run 传递环境变量。

这是我的prod.Dockerfile

FROM ubuntu:20.04

ARG SSH_PRIVATE_KEY

RUN echo "Key is $SSH_PRIVATE_KEY."

docker build 命令:

docker build -f prod.Dockerfile \
             --build-arg SHH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" \
             .

结果输出:

Key is .

然而cat ~/.ssh/id_rsa 的输出是:

-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----

我错过了什么?

【问题讨论】:

    标签: docker environment-variables docker-build


    【解决方案1】:

    SHH_PRIVATE_KEY 替换为SSH_PRIVATE_KEY

    docker build -f prod.Dockerfile \
       --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" \
       .
    

    【讨论】:

    • 该死,不敢相信我一直在脑海中将SHH 更正为SSH。非常感谢。
    猜你喜欢
    • 2018-12-02
    • 2016-06-24
    • 2019-06-02
    • 1970-01-01
    • 2018-09-18
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多