带有传递参数的Dockerfile运行命令

带有传递参数的Dockerfile运行命令,docker,dockerfile,docker-secrets,Docker,Dockerfile,Docker Secrets,我正在尝试将一个参数传递给docker构建,以便在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 '/

我正在尝试将一个参数传递给docker构建,以便在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
那就行了


有什么想法吗?

BuildKit似乎不支持您建议的功能(“秘密标识符本身的环境变量扩展”),请参阅以下两个参考:


因此,也许您可以重构Dockerfile,使其不需要此功能(顺便说一句,这会有妨碍可读性/再现性的缺点,因为您无法仅通过查看唯一的
RUN--mount=…
命令就知道机密标识符).

id=$SECERT\u NAME
替换
id=$SECRET\u NAME
就足够了吗?@ErikMD LOL,接得好。当我被替换的时候,我的输入错误是特定的名字,但事实并非如此