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

Jenkins使用node:alpine镜像执行date加1小时命令报错求助

问题原因

node:alpine 镜像基于 Alpine Linux 发行版,系统默认预装的是 BusyBox 轻量工具集,其中的 date 命令实现和常规 Linux 发行版带的 GNU date 语法不兼容:你使用的 -d '+1 hour' 是 GNU date 特有的相对时间写法,BusyBox date 不支持该语法,因此抛出日期无效的报错。

解决方案

你可以选择以下任意一种方案解决问题:

  • 方案1:使用 BusyBox date 兼容语法计算时间(无需额外安装依赖)
    通过时间戳换算的方式实现加1小时的效果,1小时等于3600秒,先获取当前时间戳加3600,再格式化输出即可,对应的Jenkins脚本写法如下:
    def BUILDVERSION = sh(script: "date -d @\$(( \$(date +%s) + 3600 )) +%Y-%m-%d-%H-%M-%S", returnStdout: true).trim()
    
  • 方案2:安装GNU date兼容原有写法
    如果你希望保留原有的-d '+1 hour'写法,可以在构建步骤最前方先安装GNU coreutils包,Alpine下的安装命令为:
    apk add --no-cache coreutils
    
    安装完成后你原来的脚本即可正常执行:
    def BUILDVERSION = sh(script: "date -d '+1 hour' +%Y-%m-%d-%H-%M-%S", returnStdout: true).trim()
    

注:你原脚本中echo date xxx``的写法冗余,直接执行date命令输出即可,无需再套一层echo。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:15:06