docker ps

原来你的项目是部署在 Docker 容器里的!这就解释了为什么你之前直接 kill 进程后,服务可能会自动重启(Docker 的守护机制)。

既然使用了 Docker,更新代码的流程就与直接运行 Java 有所不同。你需要重新构建镜像并启动新容器才能让修改生效。

以下是 Docker 环境下标准的更新步骤:

第一步:上传新的 JAR 包

将本地打包好的新 JAR 包(newbee-mall-1.0.0-SNAPSHOT.jar)通过 WinSCP 等工具上传到服务器,覆盖掉宿主机上挂载的那个旧 JAR 包

第二步:重启容器(核心步骤)

因为 JAR 包是通过目录挂载(Bind Mounts)映射进容器的,所以你不需要重新执行 docker build,只需要让容器读取最新的文件即可。

请找到你的后端容器名称或 ID,然后执行重启命令:

复制代码
# 方式一:如果你知道容器名字(假设叫 newbee-backend)
docker restart newbee-backend

# 方式二:如果你不知道名字,可以先用 docker ps 查看正在运行的容器
docker ps
# 找到对应的 CONTAINER ID 后执行
docker restart <你的容器ID>

💡 补充说明:什么时候需要重新 Build?

  • 只改了业务代码(如今天改的图片路径): 只要把新的 JAR 包传上去,然后 docker restart 即可,速度极快。
  • 如果以后修改了 Dockerfile 本身(比如换了基础镜像、加了系统依赖): 那就必须使用 docker-compose up -d --build 或者手动 docker build 重新构建镜像后再启动了。

你现在去服务器上执行一下 docker restart,然后再刷新浏览器看看图片是不是出来了!

相关推荐
lhldsg1 小时前
智慧场馆解决方案小程序开发实战:从架构设计到部署指南
java·小程序·uni-app
Freak嵌入式1 小时前
Pico UART 数据收发实战:硬件配置、MicroPython 编程
java·开发语言·单片机·嵌入式硬件·生活
devilnumber2 小时前
Oracle 与 MySQL substr 函数差异总结
java·数据库·mysql·oracle
cfm_29142 小时前
线程池阻塞队列
java·开发语言
坐吃山猪3 小时前
【多线程】ThreadPool线程池参数说明
java·网络
evans在进步3 小时前
Java 常用设计模式(二):装饰器、适配器、责任链、模板方法、策略与观察者
java·开发语言·设计模式
jvmind_dev3 小时前
频繁 new JedisCluster 之后,对象池为什么回不去了?
java·后端
AKA__Zas4 小时前
文件 I/O(速通版
java·intellij-idea·学习方法
学长毕业设计4 小时前
基于SpringBoot的咖啡馆管理系统的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
骇客野人4 小时前
SpringBoot业财一体化系统设计和落地实施方案
java·spring boot·后端