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

执行mvn clean install -P docker-build-image后应用变更未生效问题排查

排查步骤:Maven/Docker 还是 Kubernetes/Kind/Helm 导致变更未生效?

先确认:镜像是否包含代码变更(排除Maven/Docker问题)

这是最关键的第一步——如果本地镜像本身就没包含你的代码修改,后续部署肯定都是旧版本。

  • 检查Maven构建产物:查看target目录下的jar包修改时间是否为最新,解压jar包找到对应class文件,确认是否包含logger.info("testing changes made");这段代码。
  • 直接运行本地镜像测试:
    docker run --rm -p 8080:8080 my-service:old-tag
    
    调用接口看返回状态码是否为204 NO_CONTENT,同时查看容器日志是否有testing changes made的输出。
    • 如果这里没有出现预期变更,问题出在Maven/Docker环节:
      • 检查docker-build-image Profile的配置,确认它是否正确触发了Docker镜像构建,且没有跳过jar包打包步骤。
      • 查看项目的Dockerfile,确认COPY指令是否指向了target目录下的最新jar包,有没有因Docker缓存导致复用了旧的镜像层(可以在构建时加--no-cache参数强制刷新缓存,比如mvn clean install -P docker-build-image -Ddocker.build.no-cache=true)。
      • 注意:docker tag只是给现有镜像添加新标签,不会修改镜像内容——如果old-tag对应的是旧镜像,new-tag也还是旧内容。

再排查:Kubernetes/Kind/Helm 部署环节

如果本地镜像已经包含正确变更,那问题出在部署流程:

  • 验证Kind集群中的镜像:
    # 获取Kind节点名称
    kind get nodes
    # 进入节点查看镜像
    docker exec <你的Kind节点名称> docker images | grep my-service
    
    确认new-tag对应的镜像ID和本地docker images里的ID一致,否则说明kind load docker-image没有成功加载新镜像。
  • 检查Helm部署的镜像配置:
    helm get values auth
    
    查看输出中的image.tag是否为new-tag,如果不是,说明Helm values.yaml里还是配置的旧标签,或者安装时没指定正确标签。可以在安装时强制指定:
    helm install auth ./auth --set image.tag=new-tag --wait
    
  • 确认Pod实际运行的镜像:
    kubectl get pods -l app.kubernetes.io/name=auth -o jsonpath='{.items[*].spec.containers[*].image}'
    
    查看输出的镜像标签是否为new-tag,同时检查镜像ID是否和本地一致。
  • 清理残留资源:虽然helm uninstall会删除大部分资源,但可以再执行kubectl delete all -l app.kubernetes.io/name=auth彻底清理,然后重新部署。

总结

优先排查镜像本身是否正确,这是最常见的问题;如果镜像没问题,再逐步验证Kind镜像加载、Helm配置和Pod运行状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:51:18