You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从package.json获取版本号并在Cloud Build步骤中为Docker镜像打标签?

用package.json的Version为Docker镜像打标签

要在Cloud Build中提取Node.js项目package.json里的version值,给Docker镜像添加额外版本标签,可按以下方式修改build.yaml:

修改后的build.yaml内容

steps:
  # 提取package.json中的version值
  - name: node:18
    entrypoint: bash
    args:
      - -c
      - |
        # 读取package.json的version并保存到文件
        echo "VERSION=$(node -p "require('./package.json').version")" > /workspace/version.txt

  # 构建容器镜像,添加多标签
  - name: ${_BUILDER_DOCKER}
    entrypoint: bash
    args:
      - -c
      - |
        source /workspace/version.txt
        docker build -t ${_IMAGE}:${_IMAGE_TAG} -t ${_IMAGE}:latest -t ${_IMAGE}:v${VERSION} .

  # 推送所有标签到容器仓库
  - name: ${_BUILDER_DOCKER}
    args: [ 'push', '${_IMAGE}', '--all-tags']

  # 部署容器镜像到Cloud Run
  - name: ${_BUILDER_GCLOUD}
    entrypoint: gcloud
    args:
      - 'run'
      - 'deploy'
      - 'build-demo'
      - '--image'
      - '${_IMAGE}:${_IMAGE_TAG}'
      - '--region'
      - 'us-west2'
      - '--platform'
      - 'managed'
      - '--port'
      - '3000'
      - '--allow-unauthenticated'

options:
  automapSubstitutions: true
  logging: CLOUD_LOGGING_ONLY
substitutions:
  _BUILDER_GCLOUD: gcr.io/google.com/cloudsdktool/cloud-sdk
  _BUILDER_DOCKER: gcr.io/cloud-builders/docker
  _IMAGE_TAG: '${SHORT_SHA}_${BUILD_ID}'
  _IMAGE: 'us-west2-docker.pkg.dev/${PROJECT_ID}/demo/dev/build-demo'
timeout: 300s

关键说明

  • 提取版本步骤:使用node镜像执行命令读取package.json的version字段,将值存入/workspace/version.txt(Cloud Build的工作目录可跨步骤共享)。
  • 镜像构建步骤:先加载保存的版本变量,再执行docker build时添加三个标签:原有的提交详情标签、latest标签、版本标签(格式为v{version},比如v1.0.1)。
  • 推送标签:--all-tags参数会推送该镜像的所有标签到仓库,无需单独推送每个标签。
  • 部署选择:如果希望用版本标签部署Cloud Run,只需将--image参数改为${_IMAGE}:v${VERSION}即可。

注意事项

  • 请根据你的项目Node.js版本调整node镜像标签(比如node:20)。
  • 如果package.json不在项目根目录,需修改require路径(比如require('./src/package.json').version)。
  • 若package.json的version字段本身已带v前缀(比如v1.0.1),则将镜像标签改为${_IMAGE}:${VERSION}即可。

内容的提问来源于stack exchange,提问作者sonooby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:13:11