写在前面
IDEA集成Docker,需要开启docker的2375端口
Docker开放2375端口,实现远程访问 : https://blog.csdn.net/single_0910/article/details/121201709
单独应用部署成功链接:https://blog.csdn.net/single_0910/article/details/121202659
环境
Linux环境:Ubuntu18.04 LTS
IDEA版本:2019.3.5
单独应用部署没有问题,如果是微服务版本呢。
总不能把Dockerfile和pom.xml放在同一个目录吧。
不光部署不方便,耦合度太高了。
试试解耦部署。
项目结构:
配置docker-maven插件
Docker环境已经配置完成,要想在IDEA中部署项目,还需要安装Maven插件。
docker-maven-plugin
插件能够在Maven工程中,通过简单的配置,自动生成镜像并推送到仓库。
配置docker-maven插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--指定生成的镜像名 project.artifactId = water-->
<imageName>docker-${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定Dockerfile路径 ${project.basedir}:pom.xml所在的目录-->
<dockerDirectory>${project.basedir}/docker</dockerDirectory>
<!--指定远程docker环境地址-->
<dockerHost>http://192.168.211.129:2375</dockerHost>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="docker/jar" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
解释一下。
maven-antrun-plugin
插件,当点击mvn:package
命令后,会把target下生成的jar包,复制一份到docker下的jar包文件夹里。
(tips:jar文件夹不存在,它会自动创建)
当点击docker:builder后,${project.basedir}/docker
指定了dockerfile的路径。jar文件夹和dockerfile在同一目录内,因此会被读取到。
dockerHost
指定了docker镜像构建后,发布的地址。
点击docker:builde命令,出现如下界面。
查看docker服务器上的镜像:
启动镜像:
docker run -it --name "water" -p 8080:8080 916ee9c4cbb0
访问地址:
成功!