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

如何在Bitbucket Pipeline中获取当前日期时间作为变量?

解决Bitbucket Pipeline中使用当前日期时间作为变量的问题

你的配置里variables块中的$(date +%Y-%m-%d_%H:%M:%S)无法被解析,是因为Bitbucket Pipeline的变量定义阶段不支持执行Shell命令——这个阶段的变量值会被直接当作字符串处理,不会触发Shell的命令替换。

下面是两种可行的解决方法:

方法1:在Step的Script中直接生成变量

在Step的script块里定义变量,这里是在Shell环境中执行,能正常解析date命令:

pipelines:
  custom:
    build-docker-img:
      - step:
          name: Build my image
          script:
            # 直接在Shell中生成带日期的标签变量
            - MY_TAG=$(date +%Y-%m-%d_%H:%M:%S)_$BITBUCKET_BUILD_NUMBER
            - docker build -t myname/myapp:$MY_TAG .

如果需要统一时区(比如UTC),可以给date命令指定时区:

MY_TAG=$(TZ=UTC date +%Y-%m-%d_%H:%M:%S)_$BITBUCKET_BUILD_NUMBER

方法2:跨Step复用日期变量

如果需要在多个Step中使用这个日期标签,可以通过生成环境变量文件并传递 artifacts 的方式实现:

pipelines:
  custom:
    build-docker-img:
      - step:
          name: Generate build tag
          script:
            # 将变量写入环境文件
            - echo "MY_TAG=$(date +%Y-%m-%d_%H:%M:%S)_$BITBUCKET_BUILD_NUMBER" > build-tag.env
          # 标记需要传递到下一个Step的文件
          artifacts:
            - build-tag.env
      - step:
          name: Build my image
          script:
            # 加载环境变量文件
            - source build-tag.env
            - docker build -t myname/myapp:$MY_TAG .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:52:06