使用IDEA的maven-docker 远程部署 Spring 项目
1.设置打开docker远程服务
如果还没有开启 docker的远程服务
点击 这里 跟着一起设置
配置完成 能够在idea的 这里 看到 你的docker 容器
2.在pom.xml中添加maven-docker插件
该xml文件是 build 标签的部分 并非所有
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!-- 将插件绑定在某个阶段执行 -->
<executions>
<execution>
<id>build-image</id>
<!-- 将 mvn docker:build 绑定至 mvn package 上 -->
<!-- 即当执行 mvn package 时,会自动执行 mvn docker:build 生成镜像 -->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<!-- 配置一些镜像的规则 -->
<configuration>
<!-- 指定生成的镜像名 -->
<imageName>author/${project.artifactId}</imageName>
<!-- 指定版本号 -->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定远程服务器 Docker 地址 -->
<dockerHost>http://XXXXX:2375</dockerHost>
<!-- 如果没有证书 就不用配置 这个-->
<dockerCertPath>XXXX</dockerCertPath>
<!-- ---------------------------这一块可以使用 dockerFile 建立
<dockerDirectory>标签进行 指定文件 -------------------------------->
<!-- 依赖镜像 -->
<baseImage>
daocloud.io/library/java:openjdk-8u111-jre-alpine
</baseImage>
<!-- 作者信息 -->
<maintainer>xx</maintainer>
<!-- 复制本地 jar 包到 Docker 容器中指定位置 -->
<resources>
<resource>
<!-- 容器中自定义 jar 包存放路径 -->
<targetPath>/java/program</targetPath>
<!-- 本地 jar 包所在路径 -->
<directory>${project.build.directory}</directory>
<!-- 本地 jar 包名称 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<entryPoint>
["java", "-jar", "/java/program/${project.build.finalName}.jar"]
</entryPoint>
<!-- ---------------------------这一块可以使用 dockerFile 建立
<dockerDirectory>标签进行 指定文件 -------------------------------->
</configuration>
</plugin>
</plugins>
</build>
提供构造镜像的第二种方式
可以使用
<dockerDirectory></dockerDirectory>
来指定 dockerFile的位置关于 dockerfile 的简单知识 可以点击 这里
- 在项目目录下创建Dockerfile文件
FROM daocloud.io/library/java:openjdk-8u111-jre-alpine
MAINTAINER xxx
ADD target/*.jar /java/program/app.jar
EXPOSE 8080
WORKDIR /java/program
ENTRYPOINT java -jar app.jar
- 修改pom.xml文件的 build标签 内容
<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.0.0</version>
<!-- 将插件绑定在某个阶段执行 -->
<executions>
<execution>
<id>build-image</id>
<!-- 将 mvn docker:build 绑定至 mvn package 上 -->
<!-- 即当执行 mvn package 时,会自动执行 mvn docker:build 生成镜像 -->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<!-- 配置一些镜像的规则 -->
<configuration>
<!-- 指定生成的镜像名 -->
<imageName>xxx/${project.artifactId}</imageName>
<!-- 指定版本号 -->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定远程服务器 Docker 地址 -->
<dockerHost>https://xxxx:2375</dockerHost>
<!-- 如果没有证书 就不用配置 这个-->
<dockerCertPath>D:\remote\docker\certs</dockerCertPath>
<!-- 指定当前目录就行 -->
<dockerDirectory>${project.basedir}</dockerDirectory>
</configuration>
</plugin>
</plugins>
</build>
3. 使用idea 右侧 的maven工具 package 命令 打包 同时自动生成镜像文件
生成完成后 能看到自己的 的项目镜像