将秘密与 NPM 构建结合起来

时间:2021-07-11 17:40:24

标签: docker dockerfile next.js

NEXTJS 需要 env 变量来构建,但之后不需要。最初使用 ARG 但这似乎更安全(短暂)。然而,努力处理有关多个秘密的文档并将这些秘密放入 .env 文件中。对我在这里做错了什么有任何想法吗?

RUN --mount=type=secret,id=NEXT_PUBLIC_PROJECT_ID \
  cat /run/secrets/NEXT_PUBLIC_PROJECT_ID >> .env.local \
  --mount=type=secret,id=NEXT_PUBLIC_IDENTITY_API_KEY \
  cat /run/secrets/NEXT_PUBLIC_IDENTITY_API_KEY >> .env.local \
  --mount=type=secret,id=PRIVATE_KEY \
  cat /run/secrets/PRIVATE_KEY >> .env.local \
  --mount=type=secret,id=CLIENT_EMAIL \
  cat /run/secrets/CLIENT_EMAIL >> .env.local \
  --mount=type=secret,id=FIREBASE_TOKEN \
  cat /run/secrets/FIREBASE_TOKEN >> .env.local \
  && npm run build

错误信息

Error: buildx failed with: error: failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c cat /run/secrets/NEXT_PUBLIC_PROJECT_ID >> .env.local   --mount=type=secret,id=NEXT_PUBLIC_IDENTITY_API_KEY   cat /run/secrets/NEXT_PUBLIC_IDENTITY_API_KEY >> .env.local   --mount=type=secret,id=PRIVATE_KEY   cat /run/secrets/PRIVATE_KEY >> .env.local   --mount=type=secret,id=CLIENT_EMAIL   cat /run/secrets/CLIENT_EMAIL >> .env.local   --mount=type=secret,id=FIREBASE_TOKEN   cat /run/secrets/FIREBASE_TOKEN >> .env.local   && npm run build]: exit code: 1

1 个答案:

答案 0 :(得分:0)

经过一番摆弄,这就是我的工作方式

RUN --mount=type=secret,id=NEXT_PUBLIC_PROJECT_ID \
  --mount=type=secret,id=NEXT_PUBLIC_IDENTITY_API_KEY \
  --mount=type=secret,id=APRIVATE_KEY \
  --mount=type=secret,id=CLIENT_EMAIL \
  cat /run/secrets/NEXT_PUBLIC_PROJECT_ID > .env.local && \
  echo "" >> .env.local && cat /run/secrets/NEXT_PUBLIC_IDENTITY_API_KEY >> .env.local && \
  echo "" >> .env.local && cat /run/secrets/CLIENT_EMAIL >> .env.local && \
  echo "" >> .env.local && cat /run/secrets/APRIVATE_KEY >> .env.local && \
  npm run build && \
  rm .env.local
相关问题