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

使用Spring Boot Maven插件部署GitLab镜像显示发布于42年前问题

问题解决:Docker镜像显示"Published 42 years ago"

根因分析

这个问题是因为Docker镜像的创建时间被设置为Unix纪元时间(1970-01-01),导致GitLab显示为"42年前"。本质是Spring Boot Maven插件依赖的Cloud Native Buildpacks未获取到有效的构建时间戳,默认使用了纪元时间作为镜像创建时间。

解决方案

1. 在插件配置中显式设置构建时间戳

修改spring-boot-maven-plugin的配置,添加<created>参数,直接使用GitLab CI内置的CI_JOB_STARTED_AT变量(该变量为ISO 8601格式的时间戳,符合Docker对镜像创建时间的格式要求):

<configuration>
    <image>
        <name>${env.DOCKER_IMAGE_PATH}/core:${env.CI_COMMIT_SHORT_SHA}</name>
        <publish>true</publish>
    </image>
    <!-- 新增配置:指定镜像创建时间 -->
    <created>${env.CI_JOB_STARTED_AT}</created>
</configuration>

2. 在CI命令中传递构建日期环境变量

如果不想修改pom.xml,可以在GitLab CI的Maven执行命令中,通过BP_BUILD_DATE环境变量直接传入时间戳:

mvn clean package -Pci -DBP_BUILD_DATE=$CI_JOB_STARTED_AT

3. 确保插件版本为最新

使用Spring Boot 2.7.x及以上版本的spring-boot-maven-plugin,旧版本可能存在时间戳传递的兼容性问题,更新后可避免此类异常。

验证步骤

可以在CI脚本中添加echo $CI_JOB_STARTED_AT命令,确认该变量是否正常输出有效的ISO格式时间戳,排除变量未正确注入的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:55:18