如何解决带有 Exec 形式的挂载秘密的 Docker RUN 指令
ROWID
中的 RUN
指令需要以 exec 形式安装秘密的正确语法是什么?
换句话说,如果 Dockerfile
看起来像:
Dockerfile
如何将上面的FROM node:fermium-alpine
# . . .
RUN --mount=type=secret,id=npmrc yarn build:production
# . . .
指令从shell 形式转换为exec 形式?官方文档 here 中似乎没有示例。
解决方法
RUN
注意:
-
FROM node:fermium-alpine WORKDIR /usr/src/app # . . . RUN --mount=type=secret,id=npmrc,dst=/usr/src/app/.npmrc ["/usr/local/bin/yarn",\ "build:production"] # . . .
标志位于右侧的 JSON 数组之外 -
--mount
已添加到上面的dst=. . .
标志以确保--mount
不仅保存为点文件,而且保存在.npmrc
中,因此WORKDIR
可以在yarn
期间使用它
带有 exec 形式的 -
RUN
指令可能会很长;使用--mount= . . .,dst=. . .
在\
中拆分长行(取自Dockerfile
最佳实践 here) - 为了安全起见,由于 shell 表单在此处未被使用,
Dockerfile
可执行文件被替换为绝对路径 {{1 }} 用于yarn
图像
build
的 版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。