IDEA中进行Docker项目部署的实现步骤

admin3年前云主机93

现在大部分项目已经开始部署在Docker上面了,可是部署环节还是有点麻烦,所以本文想讲解一下如何使用IDEA一键部署。

Docker配置

修改配置文件

打开Docker的配置文件:vim /usr/lib/systemd/system/docker.service将下面这行注释掉:# 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重新加载配置文件和启动:systemctl daemon-reloadsystemctl start docker

如下图所示:

IDEA配置Docker

安装Docker插件

配置Docker信息

在设置中进行Docker配置,需要配置API URL,下面出现Connection successful即可:

项目搭建

新建一个springboot项目

通过IDEA搭建项目,什么都不需要选择,一直下一步就可以了:

修改pom文件

最主要的就是两点:

1.properties标签中添加

<docker.image.prefix>demo</docker.image.prefix>

2.添加新的plugin标签

<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory></dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration></plugin>

下面是完整的pom文件:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <docker.image.prefix>demo</docker.image.prefix> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory></dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build></project>

新建Dockerfile文件

需要在根内容介绍下新建Dockerfile文件

#指定基础镜像,在其上进行定制FROM java:8#维护者信息MAINTAINER zhouzhaodong <xiuaiba@163>#这里的 /tmp 内容介绍就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层VOLUME /tmp#复制上下文内容介绍下的target/demo-1.0.0.jar 到容器里COPY target/demo-0.0.1.jar demo-1.0.0.jar#bash方式执行,使demo-1.0.0.jar可访问#RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。RUN bash -c "touch /demo-1.0.0.jar"#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务EXPOSE 8080#指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"ENTRYPOINT ["java","-jar","demo-1.0.0.jar"]

新建controller文件

别忘记在pom文件中添加web依赖。

@RestControllerpublic class testController { @RequestMapping("/") public String test(){ return "test Docker"; }}

maven打包

install打包:


生成jar包:

新建配置

新建Dockerfile运行配置:


添加如下信息,找到自己写的Dockerfile文件,配置端口映射:

生成Docker镜像并运行

直接运行刚才新建的Dockerfile运行配置即可:


运行成功后log窗口会出现项目运行的信息:


访问对应的地址即可显示我们输入的信息:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持站长源码网。《IDEA中进行Docker项目部署的实现步骤》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

pia云优惠券

介绍pia云优惠券pia云优惠券是一种可以帮助用户节省购物消费的工具。在上面,用户可以找到大量的折扣信息,获取优惠券,享受更优惠的价格。 此外,pia云优惠券不仅适用于线上购物,还可以在线下商店进行使...

服务器配置优化策略分享,从性能、安全、稳定三大维度出发,提升企业业务效率

随着企业对服务器的依赖越来越大,对服务器性能、安全和稳定性的要求也越来越高。本文从性能、安全、稳定三大维度出发,分享服务器配置优化策略,旨在提升企业业务效率。一、性能优化1、合理配置硬件资源。在选择服...

固态硬盘:超越传统储存方式的卓越优势

一、读取和写入速度更快固态硬盘相较于传统硬盘具有更高的数据传输速度,这是因为固态硬盘没有机械部件。传统硬盘中的机械部件如磁盘和读写磁头需要旋转和移动;而固态硬盘只需要通过闪存芯片将数据读取到内存中,读...

php项目怎么绑定域名访问

引言在开发Web应用程序时,为方便用户访问,我们通常会将项目绑定上一个域名。但有些开发者在绑定域名时,会出现一些问题,例如无法访问、页面跳转错误等。本文将介绍PHP项目怎么绑定域名访问。步骤一:购买域...

解析梦境做梦网为您揭秘梦境中的神秘启示

一、梦境中的隐喻与象征1、梦境是一种非常复杂的心理过程,往往会以隐喻和象征的方式表达其中的信息。2、通过对这些隐喻和象征的分析,我们可以更好地理解梦中隐含的信息和暗示。3、例如,梦见自己被淹没在水中可...

国外服务器租用访问速度为什么会变慢

国外服务器租用访问速度为什么会变慢在如今互联网时代下,服务器扮演着非常重要的角色。而国外服务器由于众多的优点,例如价格低、质量高等,因此备受关注和追捧。但是,一些用户却抱怨着国外服务器租用访问速度变慢...