Docker快速部署springboot项目

有很多开发者在项目部署过程中都会遇到一些繁琐的问题,比如打包、上传、部署等。而使用Docker可以非常方便地解决这些问题。在本文中,将详细讲解如何使用IDEA中的docker打包插件,将代码打包并直接发布到服务器上。这样,我们就可以非常快速地完成项目的部署。当然,您可能会有疑问,即:我在IDEA中编写的代码,如何部署到服务器上呢?下面,我们将详细描述部署过程。

一、配置docker的远程访问

这步非常的关键,是我们IDEA和服务器产生关联的重要步骤:

1、修改 /lib/systemd/system/docker.service

vim /lib/systemd/system/docker.service

在修改Docker daemon的启动选项,使其可以监听来自远程客户端的Docker API请求,-H参数用于指定监听的地址和端口,这里使用tcp://0.0.0.0:2375表示监听所有网络接口的2375端口。

//将 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock //替换为 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2、重启docker

systemctl daemon-reload systemctl restart docker

3、测试是否修改成功

http://IP:2375/version

Docker快速部署springboot项目插图

二、IDEA中进行配置

1、具体的配置如下:

Docker快速部署springboot项目插图1

2、配置后IDEA的services中会出现docker,如下图:

Docker快速部署springboot项目插图2

三、配置dockerfile文件

FROM openjdk EXPOSE 8044 VOLUME /tmp ADD shangjian-sap.jar /shangjian-sap.jar ENTRYPOINT ["java","-server","-Xms1024m","-Xmx1024m","-Dspring.profiles.active=local","-jar","shangjian-sap.jar"]

这个 Dockerfile 中的指令说明如下:

  • FROM:指定我们的镜像基于哪个镜像构建。
  • EXPOSE:声明容器运行时需要监听的端口。
  • COPY:将应用程序的 jar 文件复制到容器的文件系统中。
  • ENTRYPOINT:定义容器启动时需要运行的命令,这里是运行 jar 文件。

四、在pom文件中配置docker打包插件

 <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.6.0</version> <configuration> <fork>true</fork> </configuration> </plugin> <!-- 跳过单元测试 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <!--使用docker-maven-plugin插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.0</version> <!--将插件绑定在某个phase执行--> <executions> <execution> <id>build-image</id> <!--用户只需执行mvn package ,就会自动执行mvn docker:build--> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--指定生成的镜像名--> <imageName>docker/${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!-- 指定 Dockerfile 路径--> <dockerDirectory>./</dockerDirectory> <!--指定远程 docker api地址--> <dockerHost>http://自己IP:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/</targetPath> <!--jar 包所在的路径 此处配置的 即对应 target 目录--> <directory>${project.build.directory}</directory> <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>

五、打包构建镜像

1、maven进行打包,以及docker构建镜像:

Docker快速部署springboot项目插图3

2、创建docker容器

步骤一

Docker快速部署springboot项目插图4

步骤二

Docker快速部署springboot项目插图5

步骤三

Docker快速部署springboot项目插图6

步骤四

Docker快速部署springboot项目插图7

六、总结

总的来说,本文通过介绍在IDEA中使用docker插件实现快速打包并部署项目的方法。这种部署方式适用于开发过程中需要频繁打包部署的场景。当然,还有其他的部署方式,如使用Jenkins等自动化工具。不过无论采用哪种方式,核心的操作步骤都类似:打包项目并将打好的包上传到服务器,最后启动项目。具体要看实际情况和需求,选择最适合自己的部署方式。

原文链接:https://blog.csdn.net/whc888666/article/details/130368225?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836884016800182130287%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836884016800182130287&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-1-130368225-null-null.nonecase&utm_term=docker%E9%83%A8%E7%BD%B2

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享