带有 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 形式的 build
  • RUN 指令可能会很长;使用 --mount= . . .,dst=. . .\ 中拆分长行(取自 Dockerfile 最佳实践 here
  • 为了安全起见,由于 shell 表单在此处被使用,Dockerfile 可执行文件被替换为绝对路径 {{1 }} 用于 yarn 图像

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...