docker springboot镜像部署 2021.2版IDEA配置docker将springboot项目打成镜像一键发布部署
王子様~ 人气:0想了解2021.2版IDEA配置docker将springboot项目打成镜像一键发布部署的相关内容吗,王子様~在本文为您仔细讲解docker springboot镜像部署的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:docker,springboot镜像部署,IDEA,docker,springboot镜像部署,SpringBoot部署docker打包镜像,下面大家一起来学习吧。
之前博客已经谈到配置docker远程链接服务,这里再介绍如何在IDEA中配置docker,将项目部署到服务器上
前文:docker开放远程链接
去插件中心安装Docker插件,安装完重启IDEA。这个简单
配置连接远程docker,打开Docker插件,新建连接,在Engine API URL处输入服务器IP地址:2375。出现Connection successful代表链接成功,否则需要看看ip端口是否是通的
新建一个springboot项目,在pom文件中docker-maven-plugin插件,直接复制
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.1</version> <!--将插件绑定在某个phase执行--> <executions> <execution> <id>build-image</id> <!--将插件绑定在package这个phase上,也就是说,用户只需要执行mvn package,就会自动执行mvn docker:build--> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--指定生成的镜像名--> <imageName>clover/${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--指定Dockerfile 的位置,${project.basedir}:项目的根路径下--> <dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory> <!--指定远程docker api地址--> <dockerHost>http://192.168.6.215:2375</dockerHost> <resources> <resource> <!--容器中自定义jar包存放的位置,及对应的target目录--> <targetPath>/</targetPath> <!--本地jar包所在路径--> <directory>${project.build.directory}</directory> <!--需要包含本地jar包名称,对应的是Dockerfile中添加的文件名--> <include>${project.build.finalName}.jar</include> </resource> </resources> <!--以下两行是为了docker push到DockerHub使用的--> <!--<serverId>docker-hub</serverId> <registryUrl>https://index.docker.io/v1</registryUrl>--> </configuration> </plugin>
添加个url接口,方便访问:
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) @RestController public class DockerdemoApplication { public static void main(String[] args) { SpringApplication.run(DockerdemoApplication.class, args); } @RequestMapping("/test") public String test(){ return "1. Hello world ! " + new SimpleDateFormat(" [yyyy-mm-dd HH:mm:ss]").format(new Date()); } }
在项目根目录新建Dockerfile文件
# Docker image for springboot application # VERSION 0.0.1 # Author: bolingcavalry ### 基础镜像,使用alpine操作系统,openjkd使用8u201 FROM openjdk:8u201-jdk-alpine3.9 #作者 MAINTAINER BolingCavalry <zq2599@gmail.com> #系统编码 ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 #声明一个挂载点,容器内此路径会对应宿主机的某个文件夹 VOLUME /tmp #应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar ADD target/dockerplugindemo-0.0.1-SNAPSHOT.jar app.jar #启动容器时的进程 ENTRYPOINT ["java","-jar","/app.jar"] #暴露8080端口 EXPOSE 8080
在IDEA新建dockerfile启动文件
Dockerfile配置详情如下图所示,请按照图中的说明进行设置,确保每个红框中都会执行到:
上图中最下面的那个"Run Maven Goal"点击后,会弹出一个小窗口 ,用来输入要执行的maven命令,这里输入clean package -U -DskipTests,表示每次在构建镜像之前,都会将当前工程清理掉并且重新编译构建:
设置完成后,点击下图红框中的绿色三角按钮,执行此配置:
发布不成功可能会因为idea不是管理员权限打开的
,笔者就遇到这种情况,发布失败,连不上服务器docker。或者防火墙,宿主机的端口没写对等等
在服务器上执行docker image
可以查看镜像情况
在浏览器上访问地址:http://192.168.6.215:8080/test,得到响应如下图所示,可见应用在容器中正常运行:
如果修改了代码,再次点击上图的三角形启动,就再次发布部署了
加载全部内容