需求

        之前前后端开发都是一个人的时候,直接在项目中运行然后前端调试,这个自然没有什么问题,但前后端不是一个人或一个团队的时候就不能直接运行项目调试,因为大家都要承担开发任务,后端的反复重启对前端会造成前端调用错误的错觉

        当然 解决方案也不是没有,就是复制出来一个项目,修改一下端口号然后运行,这样容易会出现修改代码时修改到复制出来的项目上面去。

        此时 把项目运行到Docker上是最明智的选择。

环境

操作系统:macOS 12.2.1

IDEA:2021.3.x

Docker:4.6.1

分析

都什么年代了,把程序发布到Docker上不能太复杂,越简单越好。所以通过docker插件使用图形化的操作方式实现我们的需求。(我的IDEA已经默认安装docker插件)

操作

1.配置IDEA Docker插件

PS:我的docker是在我本机上安装的,所以我在这里没有选择远程

2.配置Docker 文件

# JDK 17
FROM openjdk:17
#作者
MAINTAINER liquntao
# 系统编号
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
# 声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
# 应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/hrm-0.0.1-SNAPSHOT.jar app.jar

# 启动容器时的进程
ENTRYPOINT ["java","-jar","/app.jar"]
# 暴露2022端口
EXPOSE 2022

3.配置项目运行环境

ps:输入要执行的Maven命令clean package -U -DskipTests,会在每次构建镜像之前,将当前工程清理掉并重新编译 .如下图

4.运行(第一次运行,如果没有JDK docker会自动下载,所以会有点慢)

5.Docker 修改端口

 我手动把端口修改为8888(因为自己调试要使用2022)

6.验证

(因为我用的是spring boot 并且使用了swagger,所以能打开接口,说明正常)

 总结

任何折腾都是经验,不要抱着固守的思维做事。

原创不易,欢迎转载,转发请注明出处。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐