我正在尝试将参数传递给docker build使其在Dockerfile中执行为
RUN --mount=type=secret,id=$SECRET_NAME cp /run/secrets/$SECRET_NAME /etc/app/conf
但这将在构建期间失败 > [8/8] RUN --mount=type=secret,id=mysecret cp /run/secrets/mysecret /etc/app/conf:
#13 0.224 cp: cannot stat '/run/secrets/mysecret': No such file or directory
但是当我直接在RUN
命令中使用它时RUN --mount=type=secret,id=mysecret cp /run/secrets/mysecret /etc/app/conf
那可行。有什么想法吗?
最佳答案
似乎您建议的功能(“ secret 标识符本身的环境变量扩展”)仅受BuildKit支持,请参见。以下两个引用:
因此,也许您可以重构您的Dockerfile,使其不需要此功能(顺便说一句,鉴于仅仅通过查看唯一的
RUN --mount=…
命令就无法知道 secret 标识符,这将不利于提高可读性/可重复性。)关于docker - 带有传递参数的Dockerfile RUN命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64686009/