最新版idea2025 配置docker 打包spring-boot项目到生产服务器全流程,含期间遇到的坑

1.idea安装docker插件,新版的idea已经自动集成docker插件了

使用tcp套接字连接你的服务器端口号是2375

注意:远程服务器docker要开启远程访问 使用命令进入这个文件里面 vim /usr/lib/systemd/system/docker.service

搜索ExecStart找到这行修改成和我下面的一样,实际就是在这一行追加上-H tcp://0.0.0.0:2375

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

2.连接上之后就变成下面的,证明服务器已经连接上,能看到容器、镜像等等信息

3.项目根目录编写你的Dockerfile文件

4.这是我的dockerfile内容,你可以写自己的

复制代码
# 使用官方 OpenJDK 8 Alpine 镜像
FROM openjdk:8-jdk-alpine

# 安装字体依赖,并创建 jar 目录
RUN apk add --no-cache ttf-dejavu fontconfig \
    && mkdir -p /springboot/jar

# 设置工作目录
WORKDIR /springboot/jar

# 复制应用 jar
ADD test-admin/target/test-admin.jar /springboot/jar/test-admin.jar

# 设置语言环境
ENV LANG=C.UTF-8

# 暴露端口
EXPOSE 8090

# 启动命令
ENTRYPOINT ["java", \
    "-Duser.timezone=Asia/Shanghai", \
    "-Dfile.encoding=UTF-8", \
    "-Dspring.profiles.active=test", \
    "-Djava.awt.headless=true", \
    "-jar", "test-admin.jar", \
    "-Djava.security.egd=file:/dev/urandom"]

4.idea配置dockerfile运行

5.详细的配置

注意:镜像标识写你自己的镜像名字

注意:点击修改进行绑定端口。你的宿主机和容器里面的端口映射一定要配置好。

6.配置完成之后就可以点击运行dockerfile了

下面是坑点:我打包编译都完成了最后运行dockerfile的时候报这个错误折腾了半天,最后才知道在idea中本地运行dockerfile需要用到docker的运行环境

复制代码
Cannot run program "docker" (in directory "..."): CreateProcess error=2, 系统找不到指定的文件。

如果报这个错说明 Docker 没加入系统环境变量或未安装,我们不需要下载重量级的docker桌面客户端只要下载轻量级的运行环境就行。

下载轻量级的docker windows版本的运行环境,并且加入到环境变量里面就好了,下面是下载地址

https://docs.docker.com/engine/install/binaries/#install-server-and-client-binaries-on-windows

例如下面是我下载完放的目录

验证docker环境是否成功

显示这个就证明没有问题了。

idea会自动的生成镜像,并且把镜像推送到服务器,并且自动运行容器。

相关推荐
折哥的程序人生 · 物流技术专研12 分钟前
第4篇:Lambda 简化策略模式(Java 8+)
java·设计模式·策略模式·函数式编程·lambda·代码简化·扩充系列
researcher-Jiang43 分钟前
高性能计算之OpenMP——超算习堂学习1
android·java·学习
万里侯2 小时前
GitOps 漂移检测:集群里改了配置,Git 还以为一切正常
微服务·容器·k8s
西门吹-禅2 小时前
java springboot N+1问题
java·开发语言·spring boot
DLYSB_2 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯
weixin_BYSJ19873 小时前
SpringBoot + MySQL 乒乓球运动员信息管理系统项目实战--附源码04954
java·javascript·spring boot·python·django·flask·php
AI小码3 小时前
LLM 应用的缓存工程:当每次 API 调用都在燃烧成本
java·人工智能·spring·计算机·llm·编程·api
Hui Baby4 小时前
Spring Security
java·后端·spring
IT笔记4 小时前
【Rust】Rust Match 模式匹配详解
java·开发语言·rust
我才是银古5 小时前
构建 Java GIS 工具库:从碎片化 API 到统一抽象的设计实践
java·gis·geotools·gdal·esri