首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >GCP Cloud build pass secret to docker arg

GCP Cloud build pass secret to docker arg
EN

Stack Overflow用户
提问于 2020-06-09 14:59:00
回答 2查看 1.1K关注 0票数 0

我打算将我的npm令牌传递给gcp cloud build,这样我就可以在多阶段构建中使用它来安装私有npm包。

我有以下删节的Dockerfile:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM ubuntu:14.04 AS build
ARG NPM_TOKEN

RUN echo "NPM_TOKEN:: ${NPM_TOKEN}"

和以下缩写的cloudbuild.yaml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
  steps:
  - name: gcr.io/cloud-builders/gcloud
    entrypoint: 'bash'
    args: [ '-c', 'gcloud secrets versions access latest --secret=my-npm-token > npm-token.txt' ]
  - name: gcr.io/cloud-builders/docker
    args:
    - build
    - "-t"
    - gcr.io/my-project/my-program
    - "."
    - "--build-arg NPM_TOKEN= < npm-token.txt"
    - "--no-cache"

我基于documentation构建我的cloudbuild.yaml,但似乎我无法将两者放在一起,因为表达式:“--documentation-arg NPM_TOKEN= < npm-token.txt”不起作用。我已经测试了DockerFile,当我直接传入npm令牌时,它可以工作。我只是在传递一个来自gcloud secrets的令牌作为docker的构建参数时遇到了麻烦。

非常感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-09 19:41:20

您的目标是将机密文件内容放入build参数中。因此,您必须使用NPM_TOKEN="$(cat npm-token.txt)"NPM_TOKEN="$(< npm-token.txt)"读取文件内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  name: gcr.io/cloud-builders/docker
  entrypoint: 'bash'
  args: [ '-c', 'docker build -t gcr.io/my-project/my-program . --build-arg NPM_TOKEN="$(cat npm-token.txt)" --no-cache' ]

注意: gcr.io/cloud-builders/docker使用exec入口点表单。因此,您将入口点设置为bash。

还要注意,您将秘密保存到构建工作区(/ workspace /..)。这还允许您将密钥作为文件复制到容器中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM ubuntu:14.04 AS build
ARG NPM_TOKEN

COPY npm-token.txt .
RUN echo "NPM_TOKEN:: $(cat npm-token.txt)"
票数 3
EN

Stack Overflow用户

发布于 2020-06-09 19:46:05

我不会像你那样写你的第二步,但是像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  - name: gcr.io/cloud-builders/docker
    entrypoint: "bash"
    args:
    - "-c"
    - |
        build -t gcr.io/my-project/my-program . --build-arg NPM_TOKEN=$(cat npm-token.txt) --no-cache
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62285544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文